Mysql按分组统计一个不同列的尝试次数

3

我有一个MySQL查询,它通过测验尝试ID对结果进行分组:

SELECT * 
FROM quiz_log  
WHERE archived = 0 
GROUP BY quiz_attempt_id 
ORDER BY quiz_attempt_id ASC

以下是生成的结果

我的问题是如何通过app_user_id计算尝试次数。 app_user_id = 150出现了三次,因此我需要另一列,在第一行上显示数字1,在第3行上显示数字2,在第19行上显示数字3。

1个回答

2
您可以使用相关查询:
SELECT t.*,
       (SELECT count(distinct s.quiz_attempt_id) FROM quiz_log s
        WHERE s.app_user_id = t.app_user_id
         AND s.timestamp <= t.timestamp) as Your_Cnt
FROM quiz_log t
WHERE ....

选择 t.,(SELECT count() FROM quiz_log s WHERE s.app_user_id = t.app_user_id AND s.timestamp <= t.timestamp) as Your_Cnt FROM quiz_log t GROUP BY quiz_attempt_id。我刚试了一下,但它显示 Your_cnt 列分别为 1、11 和 21? - Pete Naylor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接