1.统计2021年各用户完成试卷数,未完成试卷数;
然后用GROUP_CONCAT函数拼接出完成试卷的详情。
SELECT
er.uid,
CAST( count( submit_time ) AS SIGNED ) AS complete_cnt,
CAST( ( count( start_time ) - count( submit_time ) ) AS SIGNED ) AS incomplete_cnt,
GROUP_CONCAT( DISTINCT CONCAT_WS( ':', DATE_FORMAT( start_time, '%Y-%m-%d' ), tag ) SEPARATOR ';' ) AS detail
FROM
exam_record er
INNER JOIN examination_info ei ON er.exam_id = ei.exam_id
WHERE
DATE_FORMAT( start_time, '%Y' ) = 2021
GROUP BY
er.uid,
CAST( count( submit_time ) AS SIGNED ) AS complete_cnt,
CAST( ( count( start_time ) - count( submit_time ) ) AS SIGNED ) AS incomplete_cnt,
GROUP_CONCAT( DISTINCT CONCAT_WS( ':', DATE_FORMAT( start_time, '%Y-%m-%d' ), tag ) SEPARATOR ';' ) AS detail
FROM
exam_record er
INNER JOIN examination_info ei ON er.exam_id = ei.exam_id
WHERE
DATE_FORMAT( start_time, '%Y' ) = 2021
GROUP BY
uid
2.去掉完成试卷数小于1 ,未完成试卷数小于等于1,未完成试卷数大等于5的用户;结果按未完成试卷数降序排序。
WHERE
complete_cnt >= 1
AND incomplete_cnt <5
And incomplete_cnt > 1
ORDER BY
incomplete_cnt DESC;
complete_cnt >= 1
AND incomplete_cnt <5
And incomplete_cnt > 1
ORDER BY
incomplete_cnt DESC;