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;
相关推荐
weixin_307779132 小时前
VS Code配置MinGW64编译SQLite3库
开发语言·数据库·c++·vscode·算法
SelectDB2 小时前
Apache Doris 4.0 AI 能力揭秘(一):AI 函数之 LLM 函数介绍
数据库·人工智能·数据分析
我是哈哈hh2 小时前
【MySQL】在UBuntu环境安装以及免密码登录入门
linux·数据库·mysql·ubuntu
HeyZoeHey3 小时前
Mybatis执行sql流程(一)
java·sql·mybatis
喪彪3 小时前
MySQL新手教学
数据库·mysql·adb
丘大梨5 小时前
QT 基础聊天应用项目文档
运维·数据库·系统架构
HMBBLOVEPDX6 小时前
MySQL的多版本并发控制(MVCC):
数据库·mysql·mvcc
.用户昵称已存在.6 小时前
MongoDB 从入门到精通:安装配置与基础操作指令详解
数据库·mongodb
ClouGence7 小时前
CloudDM 新增支持 GaussDB 与 openGauss:国产数据库管理更高效
数据库·sql·ci/cd