【问题标题】:How to group by the following aliased column如何按以下别名列分组
【发布时间】:2017-05-12 12:49:49
【问题描述】:

您将如何在以下查询中按别名列 Test_Quarter 进行分组:

SELECT  a.testID, 
        a.projectYear ,
        CASE a.ProjectPeriod
            WHEN 1 THEN 1
            WHEN 2 THEN 1
            WHEN 3 THEN 1
            WHEN 4 THEN 2
            WHEN 5 THEN 2
            WHEN 6 THEN 2
            WHEN 7 THEN 3
            WHEN 8 THEN 3
            WHEN 9 THEN 3
            WHEN 10 THEN 4
            WHEN 11 THEN 4
            WHEN 12 THEN 4 
        END AS Test_Quarter,
        SUM(a.cost)
FROM    test a
GROUP   BY a.testID, a.projectYear, Test_Quarter

谢谢你,

【问题讨论】:

  • 你可以和a.Test_Quarter一样使用或者放置所有case语句

标签: sql sql-server database group-by


【解决方案1】:

在按子句分组中包含案例陈述

SELECT  a.testID, 
        a.projectYear ,
        CASE a.ProjectPeriod
            WHEN 1 THEN 1
            WHEN 2 THEN 1
            WHEN 3 THEN 1
            WHEN 4 THEN 2
            WHEN 5 THEN 2
            WHEN 6 THEN 2
            WHEN 7 THEN 3
            WHEN 8 THEN 3
            WHEN 9 THEN 3
            WHEN 10 THEN 4
            WHEN 11 THEN 4
            WHEN 12 THEN 4 
        END AS Test_Quarter,
        SUM(a.cost)
FROM    test a
GROUP   BY a.testID, a.projectYear, CASE a.ProjectPeriod
            WHEN 1 THEN 1
            WHEN 2 THEN 1
            WHEN 3 THEN 1
            WHEN 4 THEN 2
            WHEN 5 THEN 2
            WHEN 6 THEN 2
            WHEN 7 THEN 3
            WHEN 8 THEN 3
            WHEN 9 THEN 3
            WHEN 10 THEN 4
            WHEN 11 THEN 4
            WHEN 12 THEN 4 
        END

【讨论】:

    【解决方案2】:
    SELECT  a.testID, 
            a.projectYear ,
            CASE a.ProjectPeriod
                WHEN 1 THEN 1
                WHEN 2 THEN 1
                WHEN 3 THEN 1
                WHEN 4 THEN 2
                WHEN 5 THEN 2
                WHEN 6 THEN 2
                WHEN 7 THEN 3
                WHEN 8 THEN 3
                WHEN 9 THEN 3
                WHEN 10 THEN 4
                WHEN 11 THEN 4
                WHEN 12 THEN 4 
            END AS Test_Quarter,
            SUM(a.cost)
    FROM    test a
    GROUP   BY a.testID, a.projectYear,CASE a.ProjectPeriod
                WHEN 1 THEN 1
                WHEN 2 THEN 1
                WHEN 3 THEN 1
                WHEN 4 THEN 2
                WHEN 5 THEN 2
                WHEN 6 THEN 2
                WHEN 7 THEN 3
                WHEN 8 THEN 3
                WHEN 9 THEN 3
                WHEN 10 THEN 4
                WHEN 11 THEN 4
                WHEN 12 THEN 4 
            END
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 2013-03-08
      • 1970-01-01
      • 2010-12-14
      • 2020-11-24
      • 1970-01-01
      • 2017-04-16
      相关资源
      最近更新 更多