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;
相关推荐
软件派1 小时前
MiniMax M3.1 Flash 高频业务落地实战指南
大数据·数据库·人工智能
云边云科技_云网融合2 小时前
连锁门店组网怎么做?SD-WAN 多分支组网的架构选型、部署与成本结构
服务器·数据库·php
泡海椒2 小时前
# 深度解析JQuick-SQL Join重排序与哈希连接执行机制
数据库·sql·哈希算法
acrel72 小时前
医院用电隐患治理与节能降耗及智慧能源平台应用
网络·数据库
snow@li3 小时前
PowerDesigner 全景教程:从业务建模、表结构设计、关系管理到正向/逆向、文档输出
数据库
ss2733 小时前
PostgreSQL表级锁、行级锁、轻量级锁
数据库·postgresql·区块链
RacentCLM3 小时前
证书即服务CaaS:从申请、续期到部署的自动化链路拆解
运维·数据库·自动化·ssl
SelectDB3 小时前
安全评审卡了三周,我把部署形态的四种选项重新排了一遍
大数据·数据库·云原生
Random Glow5 小时前
二级索引与回表:一次回表到底多贵
数据库·mysql·性能优化·innodb·索引