考虑下面的表,该表有一列,其中有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发布于 2020-05-15 08:24:47
嗯,sum(1)正如它所说的那样:sum()在表中的所有行中固定整数值1。您有10行,因此这将生成10 -换句话说,这就是1 * 10。
同样的逻辑将sum(2)转换为20 (即2 * 10),依此类推。
至少可以说,这个查询的实际目的是什么还不清楚。
发布于 2020-05-15 08:25:59
嗯。。。我该怎么解释呢?让我们使用更少的行。您有一张表:
id
1
2
3然后,当你这样做的时候:
select sum(10)
from t它真的在计算:
id num
1 10
2 10
3 10因此,您得到了30。也就是说,“常量”应用于每一行的求和。
https://stackoverflow.com/questions/61809631
复制相似问题