【问题标题】:Understanding Sum(1) sum(2) sum(3) [closed]理解 Sum(1) sum(2) sum(3) [关闭]
【发布时间】:2020-08-31 17:05:26
【问题描述】:

考虑下面的表格,其中一列有 10 条记录。 我无法理解如何

SUM(1) gives output 10
SUM(2) gives output 20
SUM(3) gives output 30

create table test_a4(idCol numeric);
insert into test_a4(idCol) values (1),(2),  (3),  (4), (5) , (6), (7), (8), (9) , (10)
Select SUM(1) FROM test_a4 -- SUM(1) gives output 10
Select SUM(2) FROM test_a4 -- SUM(2) gives output 20
Select SUM(3) FROM test_a4 -- SUM(3) gives output 30

【问题讨论】:

  • 您正在对文字数字求和,每行一次。因此,将总和中的数字乘以 10。即 sum(3) = 3 * 10。你希望它做什么?

标签: sql sql-server tsql sum aggregate-functions


【解决方案1】:

好吧,sum(1) 就像它所说的那样:sum() 固定整数值1 跨越表中的所有行。你有 10 行,所以这会产生 10 - 换句话说,这是 1 * 10

同样的逻辑将sum(2) 变为20(即2 * 10),以此类推。

至少可以说,这个查询的实际意图是什么还不清楚。

【讨论】:

    【解决方案2】:

    嗯。 . .我该如何解释?让我们使用更少的行。你有一张桌子:

    id
     1
     2
     3
    

    那么当你这样做时:

    select sum(10)
    from t
    

    真是算计:

    id      num
     1       10
     2       10
     3       10
    

    因此,您会得到30。也就是说,“常数”应用于被求和的每一行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-12
      • 2018-02-02
      • 1970-01-01
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 2017-02-26
      相关资源
      最近更新 更多