博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql group by
阅读量:5234 次
发布时间:2019-06-14

本文共 2464 字,大约阅读时间需要 8 分钟。

group by实例

实例一

数据表:

姓名 科目 分数

张三 语文 80
张三 数学 98
张三 英语 65
李四 语文 70
李四 数学 80
李四 英语 90

期望查询结果:

姓名 语文 数学 英语

张三 80 98 65
李四 70 80 90

create table testScore    (       tid int primary key identity(1,1),       tname varchar(30) null,       ttype varchar(10) null,       tscor int null   )    go    ---插入数据    insert into testScore values ('张三','语文',80)    insert into testScore values ('张三','数学',98)    insert into testScore values ('张三','英语',65)    insert into testScore values ('李四','语文',70)    insert into testScore values ('李四','数学',80)    insert into testScore values ('李四','英语',90)    select tname as '姓名' ,     max(case ttype when '语文' then tscor else 0 end) '语文',     max(case ttype when '数学' then tscor else 0 end) '数学',     max(case ttype when '英语' then tscor else 0 end) '英语'     from testScore     group by tname

 

实例二

数据表:

dataStr result

2016-05-09 胜

2016-05-09 胜

2016-05-09 负

2016-05-10 胜

2016-05-10 负

2016-05-10 负

期望查询结果:

日期 胜数 负数

2016-05-09 2 1

2016-05-10 1 2

-- ------------------------------ Table structure for `score`-- ----------------------------DROP TABLE IF EXISTS `score`;CREATE TABLE `score` (  `dataStr` varchar(255) DEFAULT NULL,  `result` varchar(255) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Records of score-- ----------------------------INSERT INTO `score` VALUES ('2016-05-09', '胜');INSERT INTO `score` VALUES ('2016-05-09', '胜');INSERT INTO `score` VALUES ('2016-05-09', '负');INSERT INTO `score` VALUES ('2016-05-10', '胜');INSERT INTO `score` VALUES ('2016-05-10', '负');INSERT INTO `score` VALUES ('2016-05-10', '负');SELECT U.dataStr AS 日期,SUM(result='胜')AS 胜数,SUM(result='负')AS 负数FROM score AS U WHERE 1=1 GROUP BY dataStr

实例三

数据表
国家(country)  人口(population)
中国 600
美国 100
加拿大 100
英国 200
法国 300
日本 250
德国 200
墨西哥 50
印度 250
 
期望查询结果:
  人口
亚洲 1100
北美洲 250
其他 700
 
SELECT  SUM(population),        CASE country                WHEN '中国'     THEN '亚洲'                WHEN '印度'     THEN '亚洲'                WHEN '日本'     THEN '亚洲'                WHEN '美国'     THEN '北美洲'                WHEN '加拿大'  THEN '北美洲'                WHEN '墨西哥'  THEN '北美洲'        ELSE '其他' ENDFROM    Table_AGROUP BY CASE country                WHEN '中国'     THEN '亚洲'                WHEN '印度'     THEN '亚洲'                WHEN '日本'     THEN '亚洲'                WHEN '美国'     THEN '北美洲'                WHEN '加拿大'  THEN '北美洲'                WHEN '墨西哥'  THEN '北美洲'        ELSE '其他' END;
 
 
 

 

转载于:https://www.cnblogs.com/linvan/p/5825239.html

你可能感兴趣的文章
矩形覆盖问题:变相斐波纳契数列
查看>>
iframe、flash引入
查看>>
表单验证实例 转载
查看>>
bzoj 4244 邮戳拉力赛
查看>>
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
查看>>
@Transactionl注解
查看>>
Mysql 慢查询和慢查询日志分析
查看>>
编程的修炼(中英双语)
查看>>
JTS空间分析工具包(GIS开源)学习 JAVA
查看>>
实现对称加密及非对称公钥加密
查看>>
Oracle Null 与 in, exists 的关系说明(not in 查不到结果)
查看>>
一个vue小demo购物车
查看>>
javascript 获取滚动条高度+常用js页面宽度与高度[转]
查看>>
nexus admin 从文件角度进行密码重置
查看>>
2012TI杯电子设计大赛
查看>>
[教程]Delphi 中三种回调函数形式解析
查看>>
HeatMap(热图)的原理和实现
查看>>
[转]室友靠打游戏拿30万offer,秘密竟然是……
查看>>
linux下python2.7.x版本安装
查看>>
Laravel5.5 GraphQL 为应用程序构建API
查看>>