题解 |表的连接|#试卷发布当天作答人数和平均分#

试卷发布当天作答人数和平均分

https://www.nowcoder.com/practice/5b58e89556dc4153a79d8cf8c08ba499

##试卷发布以后,当天:start_tima=release_time,level>5,uv=count(distinct(uid)),avg_score = sum(socre)/uv

## 嵌套子查询
SELECT exam_id, COUNT(DISTINCT(uid)) uv, ROUND(AVG(score),1) avg_score
FROM exam_record
WHERE (exam_id,DATE(start_time)) IN(
    SELECT exam_id,DATE(release_time)
    FROM examination_info where tag = 'SQL'
)AND  uid IN (
    SELECT uid from user_info where level >5 
)
GROUP BY exam_id
ORDER BY uv DESC, avg_score;


## 表的连接1
SELECT exam_record.exam_id, COUNT(DISTINCT(exam_record.uid)) uv, ROUND(AVG(exam_record.score),1) avg_score
FROM exam_record
LEFT JOIN examination_info
ON exam_record.exam_id = examination_info.exam_id
LEFT JOIN user_info
ON exam_record.uid = user_info.uid
WHERE examination_info.tag = 'SQL' and DATE(exam_record.submit_time) is not null and DATE(examination_info.release_time) = DATE(exam_record.start_time) and user_info.level > 5
GROUP BY exam_id
ORDER BY uv DESC, avg_score;


## 表的连接2
SELECT exam_record.exam_id, COUNT(DISTINCT(exam_record.uid)) uv, ROUND(AVG(exam_record.score),1) avg_score
FROM exam_record,examination_info,user_info
WHERE exam_record.exam_id = examination_info.exam_id AND exam_record.uid = user_info.uid
AND examination_info.tag = 'SQL' and DATE(exam_record.submit_time) is not null and DATE(examination_info.release_time) = DATE(exam_record.start_time) and user_info.level > 5
GROUP BY exam_id
ORDER BY uv DESC, avg_score;

全部评论

相关推荐

未知的命运:大佬这都找不到我还找啥啊
点赞 评论 收藏
分享
09-25 00:00
已编辑
电子科技大学 Java
球球与墩墩:这不是前端常考的对象扁平化吗,面试官像是前端出来的 const flattern = (obj) => { const res = {}; const dfs = (curr, path) => { if(typeof curr === 'object' && curr !== null) { const isArray = Array.isArray(curr); for(let key in curr) { const newPath = path ? isArray ? `${path}[${key}]` : `${path}.${key}` : key; dfs(curr[key], newPath); } } else { res[path] = curr } } dfs(obj); return res; }
查看3道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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