题解 | #未完成试卷数大于1的有效用户#

未完成试卷数大于1的有效用户

https://www.nowcoder.com/practice/46cb7a33f7204f3ba7f6536d2fc04286

SELECT uid, COUNT(if(submit_time, NULL, 1)) 	incomplete_cnt, COUNT(if(submit_time, 1, NULL))  complete_cnt, LEFT(REPLACE(GROUP_CONCAT(DISTINCT CONCAT_WS(':', DATE(start_time), tag), ';'), ',', ''), CHAR_LENGTH(REPLACE(GROUP_CONCAT(DISTINCT CONCAT_WS(':', DATE(start_time), tag), ';'), ',', ''))-1) detail
FROM exam_record a
LEFT JOIN examination_info b
ON a.exam_id = b.exam_id
WHERE YEAR(start_time) = 2021
GROUP BY uid
HAVING incomplete_cnt > 1 AND incomplete_cnt<5 AND complete_cnt >= 1
ORDER BY uid DESC

任务:找到用户相关的整合信息

限制:1.2021年

2.uid降序

思路:

根据示例查询字段,未完成的就是没有提交时间的,case when 语句或者if函数即可,完成的就是相反。在最后一个字段,需要用到很多字符函数,可以由小到大,先组配日期和标签,再使用group_concat组配一个分组的全部,之后生成的结果不知道为啥每个都多了一个,,我服了,我的和别人的都是一样的啊,所以我直接replace掉,最后后面多了个;,所以使用left结合字符长度计算函数删除最后一个字符。

这道题涉及很多字符处理函数,如left,replace,group_concat和concat_ws等

全部评论

相关推荐

Beeee0927:是缅甸园区吗
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 14:10
啊啊啊啊好幸福,妈妈是我找工作发疯前的一束光
黑皮白袜臭脚体育生:看了这篇帖子之后已经第一百次质问老妈,仍然没有得到我的老妈是老板的回答
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务