文章目录

  • SQL14 SQL类别高难度试卷得分的截断平均值 2.21
  • SQL 15 统计作答次数2.21

SQL14 SQL类别高难度试卷得分的截断平均值 2.21

描述

牛客的运营同学想要查看大家在SQL类别中高难度试卷的得分情况。

请你帮她从exam_record数据表中计算所有用户完成SQL类别高难度试卷得分的截断平均值(去掉一个最大值和一个最小值后的平均值)。

所有用户表:

examination_info(exam_id试卷ID, tag试卷类别, difficulty试卷难度, duration考试时长, release_time发布时间)

exam_record表

exam_record(uid用户ID, exam_id试卷ID, start_time开始作答时间, submit_time交卷时间, score得分)

结果保留一位小数
【分析】
截断平均值可以理解为:avg(sum - min - max)
round是用于小数精度处理

SELECT ei.tag, ei.difficulty,
ROUND((SUM(er.score) - MAX(er.score) - MIN(er.score))/(COUNT(er.score)-2), 1)  clip_avg_score
FROM examination_info  ei
JOIN exam_record  er   -- join exam_record using(exam_id)
WHERE ei.exam_id = er.exam_id AND ei.tag = 'SQL' AND ei.difficulty = 'hard'
1.ROUND(X, D) -- D表示保留几位小数
2.当两张表使用相同的列名时,join……on……可以简化为join……using (字段名),故上述join操作可以改为join exam_record using(exam_id)

SQL 15 统计作答次数2.21

描述

有一个试卷作答记录表exam_record,请从中统计出总作答次数total_pv、试卷已完成作答数complete_pv、已完成的试卷数complete_exam_cnt。

示例数据 exam_record表(uid用户ID, exam_id试卷ID, start_time开始作答时间, submit_time交卷时间, score得分):


示例输出:

解释:表示截止当前,有11次试卷作答记录,已完成的作答次数为7次(中途退出的为未完成状态,其交卷时间和份数为NULL),已完成的试卷有9001和9002两份。
【分析】
total_pv表示有开始时间start_time的次数–作答记录
complete_pv表示有提交时间的次数–提交记录
complete_exam_cnt表示有得分的次数–得分记录

-- 方法1
SELECT COUNT(start_time) AS total_pv,
COUNT(submit_time) as complete_pv,
COUNT(DISTINCT exam_id AND score IS NOT NULL) AS complete_exam_cnt
FROM exam_record
-- count中带表达式书写方式-- 方法2
select
count(exam_id) total_pv,
count(score) complete_pv,
(select count(DISTINCT exam_id)from exam_recordWHERE score is not null) complete_exam_cnt
FROM exam_record
-- 方式2第三句计算complete_exam_cnt时容易写成如下错误
-- count(select DISTINCT exam_id
--    from exam_record
--    WHERE score  is not null
--   ) complete_exam_cnt-- 方法3 case whrn then else end 语句
SELECT
COUNT(start_time) AS total_pv,
COUNT(submit_time) as complete_pv,
COUNT(DISTINCT case when score is not null then 1 else 0 end)
FROM exam_record

SQL进阶14-15相关推荐

  1. Java学习路线-42:SQL进阶:约束、关系、连接

    SQL进阶:约束.关系.连接 课时1 1.单表的查询练习 可视化客户端 SQLyog -- 查询部门编号为30的所有员工 select * from emp where deptno=30;-- 查询 ...

  2. js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr)...

    js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr) 一.总结 1.|符号的使用:var reg=/^\d ...

  3. 云计算之路-阿里云上:2013年4月7日14:15~18:35服务器故障经过

    无地自容的道歉之后,向大家汇报一下故障的整个经过.在此再次向大家表示歉意,望大家能谅解! 14:15,有园友在闪存上说博客后台不能发布博文(见下图). 14:17左右,我们看到了这条闪存.立即进入博客 ...

  4. SQL进阶提升(疑惑篇order by)-学习sql server2005 step by step(十一)

    这篇主要发出两个疑惑,希望有兴趣的人解答,谢谢! 1.newid()疑惑 1 create table tb (aa int,bb char(1)) 2 insert tb values(1,'A') ...

  5. Linq To Sql进阶系列 -目录导航

    博客园CLR基础研究团队|CLR团队精品系列|C# 3.0专题 [Linq To Sql进阶系列] 目录导航 1 Linq To Sql进阶系列(一)-从映射讲起 本系列,或多或少,直接或间接依赖入门 ...

  6. python进阶14文件路径(找不到文件)

    原创链接:python进阶14文件路径(找不到文件) 开发时遇到问题,文件路径不正确,找不到文件等等,都是这一类问题. curdir,argv,file 举例: 文件1代码: 1 2 3 4 5 6 ...

  7. 牛客网SQL 进阶篇刷题

    牛客网SQL 进阶篇刷题(1-19) 用户1001在2021年9月1日晚上10点11分12秒开始作答试卷9001,并在50分钟后提交,得了90分: 用户1002在2021年9月4日上午7点1分2秒开始 ...

  8. sql优化的15个小技巧

    最近找了找怎么优化SQL,总结了15个基础技巧 因为最近一直在写sql的原因,所以需要知道sql该怎么优化,怕哪一天线上的接口,出了问题,需要优化,就需要采用改造成本最小的. 先上个导图 1.避免使用 ...

  9. SQL性能优化15个小技巧

    SQL性能优化15个小技巧 前言 sql优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到. 如果某天你负责的某个线上接口,出现了性能问题,需要做优化.那么你首先想到的很有 ...

  10. [SQL基础教程] 1-5 表的删除和更新

    [SQL基础教程] 1-5 表的删除和更新 表的删除 语法 DROP TABLE <表名>; 法则 1-12 删除的表无法恢复 表定义的更新 语法 ALTER TABLE<表名> ...

最新文章

  1. php的div和p的区别,p标签与div标签区别
  2. UA OPTI570 量子力学29 摄动理论简介
  3. 在2012年安装XCODE旧版本的错误解决方法
  4. 一位老师,一位领导,一个让全体学生考上目标学校的故事
  5. Oracle创建序列,删除序列
  6. 我也想对广大程序员说一些话
  7. webpack 报错 path is not defind
  8. Linux基础之常见命令用法(一)
  9. PyQt5将ui文件编译为py文件的方法
  10. Ubuntu18.04进入命令行模式和recovery-mode安装软件
  11. C#|RBG图像转灰度图像与图像灰度反转
  12. 南方cass快捷键命令修改在哪_南方cass快捷键命令
  13. IP切换器是做什么用的?
  14. linux ubuntu 安装odb,玩玩Linux云主机-Ubuntu安装nginx
  15. python-opencv视频转图片+图片转视频(步骤详解)(亲测有效)
  16. uniapp 地址转换经纬度
  17. 那个“天使”阿桑奇又回来了
  18. 在JavaScript中使用Octet Streams
  19. Jenkins自动化部署学习笔记(二、在Windows系统上使用Jenkins.war直接运行 )
  20. 区块链开发零基础必备技能之GO语言从入门到高级

热门文章

  1. 2小时入门神经网络与深度学习
  2. 阿里巴巴中国站按关键字搜索新品数据 API
  3. 你“被5G”了吗?5G套餐无法改4G 更有运营商下架4G
  4. 基于ART-PI ALIENTEK 4342 RGBLCD的touchgfx在rt-studio上的使用
  5. pandaboard es 制作SD启动卡OMAP4460
  6. nes 游戏引擎 原理分析
  7. 计算机二级vb知识点汇总,计算机等级考试二级VB考点:控件数组
  8. 全国计算机考试vb二级通过率,想知道计算机二级考试VB的到底通过率咋样???考过的请指教咋样复习...
  9. 互联网日报 | 4月28日 星期三 | 创维汽车品牌正式发布;Redmi正式进军游戏手机;网宿科技旗下云计算业务独立运营
  10. Frontpage2003的共享边框