每列上的SQL SUM条件

时间:2017-04-13 04:17:29

标签: mysql sql

我尽最大努力编写查询以获得所需的输出格式,如下所示。有没有更好的方法来实现这一点,表1有原始数据,我想找到给定用户的唯一设备的每月使用总和。任何帮助都非常感谢。

table format

为首先不清楚而道歉。标记不同的图像以更好地说明。如果您在附加的新图像中查看此数据。按用户名过滤后 - 我得到了数据输出。我需要按设备获得按月使用的总和。

Ex:图像中突出显示的行,其中iPhone-6sPlus每月多次使用多次。我正在寻找一个提供输出的查询 iPhone-6SPlus在1月份使用xx_hrs,在feb中使用yy_hrs等。同样适用于其他设备型号。希望这可以帮助。感谢。

Better image

1 个答案:

答案 0 :(得分:0)

create table #product (model varchar(50),users varchar(5), monthofuse Varchar(3),yearofuse int,usage int)

Insert into #product values('X','a', 'JAN',2010,34),    ('X','a', 'Feb',2010,20),('X','a', 'Mar',2010,10),('Y','a', 'Jan',2010,30),
('Y','b', 'Jan',2010,30),('Y','b', 'Feb',2010,30),('X','a', 'JAN',2011,50)

select * from #product

Select * FROM
(Select users,monthofuse,usage,model from #product) q
Pivot 
(
sum(usage) for q.monthofuse in([JAN],[FEB],[MAR],[APR],[MAY],[JUN],[JUL],[AUG],[SEP],[OCT],[NOV],[DEC]))As pvttable