【问题标题】:Using sum in select statement without GROUP by在没有 GROUP by 的 select 语句中使用 sum
【发布时间】:2020-09-07 11:51:16
【问题描述】:
select
   Col1,
   Col1/sum(Col1) as Fraction
from MyTable

这个不会返回想要的结果。如果我添加Gruop by Col1,那么它将在第二列中返回一堆 1'a。 我怎样才能解决这个问题?

基本上我想将sum(Col1) 视为常量参数。我可以使用with 语句,但我想要一个不添加另一个select 语句的解决方案。

我正在使用 Toad 并从 Oracle 数据库中进行选择

【问题讨论】:

    标签: sql oracle select toad


    【解决方案1】:

    以解析形式使用SUM

    select
      col1,
      col1 / sum(col1) over () fraction
    from mytable
    

    【讨论】:

    • 谢谢。它解决了我的问题,但我不知道为什么 :D 你能补充几句话吗?
    • 如所写,此函数返回整个表中所有 COL1 值的总和(因为没有 PARTITION BY 子句)。由于分析函数不对行进行分组,因此查询不需要 GROUP BY 子句。因此,您得到了您想要的 - 无需额外 SELECT 语句的摘要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多