统计学生成绩的SQL
来源:互联网 发布:h3c端口镜像配置 编辑:程序博客网 时间:2024/04/27 14:23
现在有一个表:
成绩表
t_result:
a_no a_type a_subject a_flag
001 0000 A 1
001 0000 B 1
001 0001 A 1
001 0001 C 0
002 0000 C 1
002 0000 E 0
002 0000 F 1
002 0001 A 1
002 0001 B 0
002 0001 C 1
有自己的编号(a_no),还有一个类型编号(a_type), 这两个字段作为表的主键。
可以选不同可的科目,且科目的数量及个数都可以不同。后面是标识当前科目是否通过。
现在想做一个统计语句,求出的结果类似于查出来按照主键进行分组。
查询的结果实例为:
a_no a_type 全部通过
001 0000 Y
001 0001 N
002 0000 N
002 0001 N
SQL代码如下:
- SELECT
- TMP_TABLE.A_NO,
- TMP_TABLE.A_TYPE,
- CASE WHEN ASUM = CSUM THEN 'Y' ELSE 'N' END AS 全部通过
- FROM
- (
- SELECT T.A_NO,
- T.A_TYPE,
- T.A_FLAG,
- SUM(T.A_FLAG) OVER(PARTITION BY T.A_NO, T.A_TYPE ORDER BY T.A_NO) AS ASUM,
- COUNT(T.A_FLAG) OVER(PARTITION BY T.A_NO, T.A_TYPE ORDER BY T.A_NO) AS CSUM,
- ROW_NUMBER() OVER(PARTITION BY T.A_NO, T.A_TYPE ORDER BY T.A_NO ) AS RN
- FROM T_RESULT T
- )TMP_TABLE
- WHERE
- TMP_TABLE.RN = 1
简练版本
- SELECT A_NO,
- A_TYPE,
- CASE
- WHEN COUNT(DECODE(A_FLAG, 0, 1)) > 0 THEN 'N'
- ELSE 'Y'
- END "全部通过"
- FROM T_RESULT
- GROUP BY A_NO, A_TYPE
- 统计学生成绩的SQL
- 统计学生成绩的SQL
- sql统计-关于学生成绩
- sql统计-关于学生成绩
- sql统计-关于学生成绩
- sql统计-关于学生成绩
- sql统计-关于学生成绩
- 【转】 sql统计-关于学生成绩
- sql统计-关于学生成绩
- sql统计-关于学生成绩
- sql统计-关于学生成绩
- 统计学生成绩部分sql语句
- sql统计-关于学生成绩
- sql统计-关于学生成绩
- sql统计-关于学生成绩
- sql 统计-关于学生成绩
- 完善的学生成绩计算统计
- 项目六学生成绩的统计
- linux read 用法
- 期望的书
- 查出谁的奖金总合是最高的,SQL语句
- error LNK2019: 无法解析的外部符号 __imp__WSACleanup@0,该符号在函数 _wmain 中被引用
- Oracle 按年或月进行统计
- 统计学生成绩的SQL
- SQL基础
- oracle学习网
- 网上SQL问题连载1
- 开博申明
- Oralce 行列转换
- Word文档的读取,WordToHtml(Android)
- 网上SQL问题连载2
- Hibernate_树状映射