mysql - 在 MySQL 中选择如下水平格式的结果
问题描述
我有一张这样的桌子。
像这样的卖方表:
同一张表的代码是:
create table sellers (seller_id int, country varchar(30), Month varchar(30), Sales int);'''
insert into sellers values
(1, 'I', 'January', 10000),
(1, 'I', 'Februray', 60000),
(1, 'I', 'March', 80000),
(2, 'In', 'january', 20000),
(2, 'In', 'February', 10000),
(2, 'In', 'March', 10000),
(3, 'Ind', 'january', 50000),
(3, 'Ind', 'March', 20000),
(3, 'Ind', 'February', 10000)
;
我想得到以下格式的结果
结果格式如下:
我尝试了这样的 SQL 代码,但无法检索结果:
select seller_id,
(select sales where month = 'January') as Jan_sales,
(select sales where month = 'February') as Feb_sales,
(select sales where month = 'March') as Mar_sales
from sellers group by seller_id;
解决方案
你可以使用一个虚假的聚合函数
select country
, max(if(month = 'January', sales, 0) Jan_sales
, max(if(month = 'February', sales, 0) Feb_sales
, max(if(month = 'March', sales, 0) Mar_sales
from sellers
group by country
推荐阅读
- python - 为什么我的 Armstrong Number Checker Program 的“number”变量最后会改变值?
- java - 对象列表 - 获取对象字段的不同计数
- python - 在 pandas 中查找 n 个连续行的平均值并添加为同一数据框中的另一列
- ios - 如何使用 cocoapods + 静态库运行 iOS 单元测试
- html - 如何使某些 CSS 样式响应而不是整个身体
- java - 如何在 IDEA 中使用结构搜索来查找没有尾随注释或与模式不匹配的注释的行
- python - 使用英特尔 MKL 在不同 CPU 上可重现的机器学习结果
- spring-tools-4 - STS 无法创建 spring stater 项目
- visual-studio-code - 在 Visual Studio 中排除表单并将其替换为新表单
- java - java.util.ConcurrentModificationException 从数组列表中删除元素时,即使使用迭代器