繁体   English   中英

MySQL行成列数和总和

[英]MySQL row into number of columns and sum

有人可以帮忙我的SQL吗?

我有一个表,其中包含诸如:

ID | Car_num | Service | Price
---+---------+---------+------
1  | 001     | shower  | 10
2  | 002     | TV      |  5
3  | 001     | TV      |  5

如何编写SQL查询以获取以下输出?

ID |Car_num | shower | TV
---+--------+--------+---
1  | 001    | 10     | 5
2  | 002    |  0     | 5

使用数据透视查询:

SELECT MIN(ID) AS ID,
       Car_num,
       MAX(CASE WHEN Service = 'shower' THEN Price ELSE 0 END) AS shower,
       MAX(CASE WHEN Service = 'TV'     THEN Price ELSE 0 END) AS TV
FROM yourTable
GROUP BY Car_num
SELECT ROW_NUMBER() OVER(ORDER BY Car_num) Id,Car_num ,ISNULL([TV],0) [TV],ISNULL([shower],0) [shower]

FROM(SELECT Car_num,_Service,ISNULL(Price,0)价格FROM #Table)数据PIVOT(MAX(Price)FOR _Service IN([TV],[shower]))AS PVT

尝试这个:

SELECT ID, Car_num
   , SUM(IF(Service = 'shower', Price, 0)) AS Shower
   , SUM(IF(Service = 'TV', Price, 0)) AS TV
FROM your_table
GROUP BY Car_num;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM