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;
相关推荐
虾球xz15 分钟前
游戏引擎学习第147天
数据库·学习·游戏引擎
向上的车轮1 小时前
什么是时序数据库?有哪些时序数据库?常见的运用场景有哪些?
数据库·时序数据库
岱宗夫up2 小时前
【Python】Django 中的算法应用与实现
数据库·python·opencv·django·sqlite
比花花解语3 小时前
使用数据库和缓存的时候,是如何解决数据不一致的问题的?
数据库·缓存·数据一致性
YGGP3 小时前
Redis篇:基础知识总结与基于长期主义的内容更新
数据库·redis·缓存
KINICH ahau3 小时前
数据库1-2章
数据库·oracle
我想吃烤肉肉4 小时前
leetcode-sql数据库面试题冲刺(高频SQL五十题)
数据库·sql·leetcode
夏炎正好眠5 小时前
mysql练习
数据库·mysql
NineData5 小时前
NineData 社区版正式上线,支持一键本地化部署!
数据库·程序员
大0马浓5 小时前
LLM训练如何从图片提取信息存入向量数据库
数据库·训练·rag