首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚合的Sql查询

聚合的Sql查询
EN

Stack Overflow用户
提问于 2014-12-01 06:30:46
回答 4查看 94关注 0票数 2

让我们考虑下表的结构

代码语言:javascript
复制
Product    Year   Month Price

A         2011      01   23

A         2011      02   34

.

.

代码语言:javascript
复制
A       2011      12    54   
B       2011      01   13

B       2011      02   12

.

.

B 2011年12 20

从这张表中,我需要每3个月将值相加.

代码语言:javascript
复制
Product        Year          Month              Price

A              2011          1-3                45

A              2011          4-6                23

A              2011          7-9                45

A              2011          10-12              16

2012年1-3 12 ..

有人能告诉我如何使用sql查询进行计算吗.提前谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-12-01 06:38:41

尝尝这个。使用Case statement对月份季度进行分组,然后查找sum of price

代码语言:javascript
复制
SELECT product,
       [year],
       CASE
         WHEN ( [month] ) IN( '01', '02', '03' ) THEN '1-3'
         WHEN ( [month] ) IN( '04', '05', '06' ) THEN '4-6'
         WHEN ( [month] ) IN( '07', '08', '09' ) THEN '7-9'
         WHEN ( [month] ) IN( '10', '11', '12' ) THEN '10-12'
       END [Month],
       Sum(Price)
FROM   tablename
GROUP  BY product,
          [year],
          CASE
            WHEN ( [month] ) IN( '01', '02', '03' ) THEN '1-3'
            WHEN ( [month] ) IN( '04', '05', '06' ) THEN '4-6'
            WHEN ( [month] ) IN( '07', '08', '09' ) THEN '7-9'
            WHEN ( [month] ) IN( '10', '11', '12' ) THEN '10-12'
          END 

注意:通过查看month数据,它看起来像一个varchar列,但您可以将它更改为廷因特

票数 3
EN

Stack Overflow用户

发布于 2014-12-01 06:40:44

尝试在CASE子句中使用GROUP BY

代码语言:javascript
复制
...
GROUR BY [Year], CASE WHEN Month in (1,2,3) THEN '1-3'
                      WHEN Month in (4,5,6) THEN '4-6'
                  ...
                 END  
票数 0
EN

Stack Overflow用户

发布于 2014-12-01 06:49:55

选择产品,年份,当月份在1到3之间,然后'01-03‘其他情况,当月份在4到6之间,然后'04-06’其他情况,当月份在7到9之间,然后'07-09‘其他'10-12’结束,和(价格) 来自Table1 按产品分组,年份,当月份在1到3之间,然后'01-03‘情况在4到6之间,然后'04-06’其他情况在7到9之间,然后'07-09‘其他'10-12’结束

上面的sql查询将给出所需的结果,如果您不使用我在月份标签中使用的前导零,那么您将不会得到按月份排序的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27222857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档