- 这个思路类似于 两张questions_pass_record表 分别是t1和t2。
- 首先从t1表里取出一个t1.pass_count,使用count(*)统计了t2表中同一日期内有几个比t1.pass_count大。
- 如果count()=0说明当前取出的pass_count是当天最大的,可以输出。如果count()=1说明当前取出的pass_count是当天第二大的,可以输出。再如果count()=2说明是当天第三大的,此时不满足count()<2,因此不输出。
- 综上可知,该题解输出了当天前二大的pass_count
SELECT
`date`,
user_id,
pass_count
FROM
questions_pass_record qpd1
WHERE
(
SELECT
COUNT(*)
FROM
questions_pass_record qpd2
WHERE
qpd1.pass_count < qpd2.pass_count
AND qpd1.date = qpd2.date
) < 2
ORDER BY
`date`,user_id desc