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

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

题目

现有试卷作答记录表exam_record(uid用户ID, exam_id试卷ID, start_time开始作答时间, submit_time交卷时间, score得分),示例数据如下:
在这里插入图片描述
还有一张试卷信息表examination_info(exam_id试卷ID, tag试卷类别, difficulty试卷难度, duration考试时长, release_time发布时间),示例数据如下
在这里插入图片描述

select 
    a.uid
    ,count(a.start_time)-count(a.submit_time) cnt_im
    ,count(a.submit_time)
    ,group_concat(distinct concat_ws(':',date(a.start_time),b.tag)  separator';' )
from 
    exam_record a 
    left join examination_info b
    on a.exam_id = b.exam_id
where 
    year(a.start_time)=2021
group by 
    a.uid
having 
    count(a.start_time)-count(a.submit_time)>1 
    and count(a.start_time)-count(a.submit_time)<5 
order by 
    cnt_im desc;

函数

concate_ws

CONCAT_WS(separator,str1,str2,...)
--使用分隔符将不同字段连接起来

group_concat

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

将同一列中相同/不同的行连接起来,通过group by 分组

concat

concat(str1,str2)

连接不同的字段,没有分隔符,默认为空格

sepeat

repeat(str,number)

将字段复制几遍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值