【问题标题】:Divide two columns into group by function SQL按函数SQL将两列分组
【发布时间】:2016-03-18 15:19:43
【问题描述】:

如果我有以下选择查询:

select col1, col2, col3, sum(value1) as col4, col5
from table1
group by col1, col2, col3, col5

如何添加 col6 = col4/col5?

【问题讨论】:

    标签: sql sql-server group-by divide


    【解决方案1】:

    您无法访问 SELECT 子句中的别名。所以你必须重复sum(value1)

    select col1, col2, col3, 
           sum(value1) as col4, 
           col5, 
           sum(value1) / col5 as col6
    from table1
    group by col1, col2, col3, col5
    

    【讨论】:

    • @4est 否,此字段是使用聚合函数 (sum) 中出现的聚合字段 (col5) 和非聚合字段 (value1) 计算得出的。
    【解决方案2】:

    在派生表中执行GROUP BY

    select col1, col2, col3, col4, col5, col4/col5 as col6 
    from
    (
        select col1, col2, col3, sum(value1) as col4, col5
        from table1
        group by col1, col2, col3, col5
    ) dt
    

    【讨论】:

    • @JamieD77,感谢您的指正!周末愉快! (我很高兴终于到了星期五。我需要休息。)
    【解决方案3】:

    您可以在 select 语句中执行操作。但是,您不能在其中使用 SQL 语句的别名。所以你需要再次计算col4。只需添加sum(value1)/col5 as col6

    select col1, col2, col3, sum(value1) as col4, col5, sum(value1)/col5 as col6
    from table1
    group by col1, col2, col3, col5
    

    【讨论】:

      猜你喜欢
      • 2018-11-08
      • 1970-01-01
      • 1970-01-01
      • 2014-08-20
      • 2014-01-31
      • 2019-01-28
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多