先上完整代码:
SELECT
uid,
count(start_time) - count(submit_time) incomplete_cnt,
count(submit_time) complete_cnt,
group_concat(distinct CONCAT(date(start_time),':',tag) SEPARATOR ';') detail
FROM
exam_record e_r
LEFT JOIN
examination_info e_i
ON
e_r.exam_id = e_i.exam_id
WHERE
year(start_time) = 2021
GROUP BY
uid
HAVING
incomplete_cnt between 2 and 4
and
complete_cnt >= 1
order by incomplete_cnt DESC
新知识时间:
group_concat
group_concat(列名,separator‘;’)//将列数据全并入一行并以:隔开
旧知识时间:
concat(列1,‘分隔符’,列2)//连接
between [ ]闭区间
count 计数时自动忽略null值
having 分组后筛选