Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để sử dụng biến người dùng làm bộ đếm với các truy vấn nối bên trong có chứa câu lệnh GROUP BY?

Tôi không chắc kết quả của bạn liên quan đến matches bảng,

bạn có thể thêm lại WHERE / INNER JOIN nếu bạn cần.

Đây là liên kết tới fiddle

lần lặp cuối cùng theo nhận xét của bạn:

Và đây là một truy vấn:

SET @user:=0;

select  d.user_id,
        sum(case when d.result = 1 then 1 else 0 end) as winnings, 
        sum(case when d.result = 2 then 1 else 0 end) as loses,
        sum(case when d.result = 1 then d.odd_value else 0 end) as points,
        f.bonus
FROM odds d
    INNER JOIN
    (
      SELECT  
            user_id,SUM(bonus) AS bonus
        FROM
        (
          SELECT 
            user_id,
            CASE WHEN result=1 and @counter<5 AND @user=user_id THEN @counter:[email protected]+1 

                 WHEN result=1 and @counter=5 AND @user=user_id THEN @counter:=1 

                 WHEN result=1 and @user<>user_id THEN @counter:=1 
                 ELSE 
                 @counter:=0 
            END AS F1,
            @user:=user_id,
            CASE WHEN @counter=5 THEN 1 ELSE 0 END AS bonus 
          FROM odds o
          ORDER BY user_id , match_id         
        ) Temp
        group by user_id
        )as f on f.user_id = d.user_id
      group by d.user_id



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Chỉ trả lại tin nhắn cuối cùng trong bảng tin nhắn hội thoại / phẳng

  2. Chèn mã html ckeditor vào cơ sở dữ liệu

  3. Làm cách nào để sử dụng $ db từ .php khác sang lớp .php khác bằng OOP?

  4. Laravel:nhận một giá trị duy nhất từ ​​một truy vấn MySQL

  5. mysql chọn trong danh sách với regexp / chuỗi con