斗鱼笔试 - SQL 划分区间统计成绩百分比
来源:互联网 发布:知乎的分割线 编辑:程序博客网 时间:2024/04/19 16:59
有A,B两表,A(name,subject,score),B(subject,weight),总分=各科成绩*权重的和,求0~59分,60~89,90~100的人数百分比
CREATE TABLE `a` ( `name` varchar(255) DEFAULT NULL, `subject` varchar(255) DEFAULT NULL, `score` int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;CREATE TABLE `b` ( `subject` varchar(255) DEFAULT NULL, `weight` double DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
没有实现按区间划分统计版本:
SELECT COUNT(*) / ( SELECT COUNT(DISTINCT(A.`name`)) FROM A )FROM ( SELECT a.`name` AS `name`, sum(a.score * b.weight) AS score FROM A, B WHERE A.`subject` = b.`subject` GROUP BY a.`name` ) studentWHERE score >= 90
划分区间:
SELECT -- 返回字符串 ELT( -- 划分区间 INTERVAL (student.score, 0, 60, 90, 100), "1-60", "61-90", "91-100", "101-" ) AS level, count(*) / ( SELECT count(DISTINCT(A.`name`)) FROM A ) AS perFROM ( SELECT a.`name` AS `name`, sum(a.score * b.weight) AS score FROM A, B WHERE A.`subject` = b.`subject` GROUP BY a.`name` ) studentGROUP BY ELT( INTERVAL (student.score, 0, 60, 90, 100), "1-60", "61-90", "91-100", "101-" );
版本2
SELECT -- 返回字符串 ( CASE WHEN student.score >= 0 AND student.score < 60 THEN "0~59" WHEN student.score >= 60 AND student.score < 90 THEN "60~89" WHEN student.score >= 90 AND student.score < 100 THEN "90~99" ELSE "100+" END ) AS LEVEL, ( count(*) / ( SELECT count(DISTINCT(A.`name`)) FROM A ) ) AS perFROM ( SELECT a.`name` AS `name`, sum(a.score * b.weight) AS score FROM A, B WHERE A.`subject` = b.`subject` GROUP BY a.`name` ) studentGROUP BY ( CASE WHEN student.score >= 0 AND student.score < 60 THEN "0~59" WHEN student.score >= 60 AND student.score < 90 THEN "60~89" WHEN student.score >= 90 AND student.score < 100 THEN "90~99" ELSE "100+" END );
0 0
- 斗鱼笔试 - SQL 划分区间统计成绩百分比
- 统计成绩SQL语句
- 一条SQL语句统计百分比
- 笔试题:SQL统计各班成绩第一名的学生信息
- 统计学生成绩的SQL
- 统计学生成绩的SQL
- sql server 使用over 统计百分比
- 统计百分比
- sql统计-关于学生成绩
- sql统计-关于学生成绩
- sql统计-关于学生成绩
- sql统计-关于学生成绩
- sql统计-关于学生成绩
- 【转】 sql统计-关于学生成绩
- sql统计-关于学生成绩
- sql统计-关于学生成绩
- sql统计-关于学生成绩
- 统计学生成绩部分sql语句
- UVA 1377 Ruler(dfs)
- 死锁的解决方法
- 欢迎使用CSDN-markdown编辑器
- TensorFlow学习笔记:编程模型
- web前端面试题(二)
- 斗鱼笔试 - SQL 划分区间统计成绩百分比
- model
- Thread和Runnable实现多线程的区别
- php 使用pathinfo(), parse_url(), basename()解析URL
- 埃及水资源预测问题—2013年美国大学生数学建模竞赛B题
- qplot的简单使用
- 面试易错点
- HashMap解析
- 【HDU】5771 Turn Game 【dp套dp】