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;
相关推荐
wefg133 分钟前
【Redis】初识 Redis
数据库·redis·缓存
hacker_LeeFei3 小时前
Windows 下配置 Redis 8.10.2 开机自启:一次踩坑全记录
数据库·windows·redis
这个DBA有点耶3 小时前
MySQL字符集与排序规则深入:索引失效的隐蔽场景与排查方法
数据库·mysql·代码规范
zl_dfq3 小时前
Redis 之 【持久化 与 事务】
数据库·redis
闲云自留地4 小时前
从下载到登录:MySQL 在两大系统上的完整安装教程
数据库·mysql
SelectDB技术团队4 小时前
Apache Doris 高性能 Open Lake Variant 读写技术解析(含对比数据)
数据结构·数据库·clickhouse·日志·apache doris·selectdb·湖仓架构升级
一 乐5 小时前
博客管理系统|基于springboot + vue博客管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·毕设
茉莉玫瑰花茶5 小时前
GO [ 类型 ]
开发语言·数据库·golang
自强的小白5 小时前
MYbatis-plus(自定义sql)
java·sql·mybatis
ClouGence5 小时前
开源数据库管理工具 CloudDM 4.3.0 发布,支持 SQL 收藏,多数据源语法支持大幅增强
数据库·oracle·sql server