sql-行转列2(转置)

行转列的常规做法是,group by+sum(if())【或count(if())】

例题

表table如下:

DDate shengfu
2015-05-09
2015-05-09
2015-05-09
2015-05-09
2015-05-10
2015-05-10
2015-05-10

如果要生成下列结果, 该如何写sql语句?

DDate
2015-05-09 2 2
2015-05-10 1 2
sql 复制代码
--建表
create table table1(DDate string, shengfu string) ;
insert overwrite table table1 values ('2015-05-09', "胜"),
       ('2015-05-09', "胜"),
       ('2015-05-09', "负"),
       ('2015-05-09', "负"),
       ('2015-05-10', "胜"),
       ('2015-05-10', "负"),
       ('2015-05-10', "负");

select 
	DDate,
    ,SUM(case when shengfu = '胜' then 1 else 0 end) `胜`
    ,SUM(case when shengfu = '负' then 1 else 0 end) `负`
from table1
group by DDate;
相关推荐
Mike117.5 小时前
GBase 8a 日期边界写法和时间窗口取数偏差
数据库
SPC的存折6 小时前
1、Redis数据库基础
linux·运维·服务器·数据库·redis·缓存
MatrixOrigin10 小时前
数据库没有死,只是范式变了
数据库·oracle
羊小蜜.11 小时前
Mysql 13: 触发器全解——创建、查看、使用与注意事项
数据库·mysql·触发器
阿里加多11 小时前
第 1 章:Go 并发编程概述
java·开发语言·数据库·spring·golang
ShiJiuD66688899911 小时前
Mysql 进阶
数据库·mysql
一 乐12 小时前
物流信息管理|基于springboot + vue物流信息管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·物流信息管理系统
Rick199312 小时前
Redis 分布式锁:核心使用场景
数据库·redis·分布式