首页 > 代码库 > sql group by
sql group by
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;
sql group by
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。