SQL> WITH tt AS( 2 SELECT 1 a,2 b FROM dual 3 )SELECT SUM(1) FROM tt; SUM(1) ---------- 1SQL> SQL> WITH tt AS( 2 SELECT 1 a,2 b FROM dual UNION ALL 3 SELECT 2 a,2 b FROM dual 4 )SELECT SUM(1) FROM tt; SUM(1) ---------- 2SQL> SQL> WITH tt AS( 2 SELECT 1 a,2 b FROM dual UNION ALL 3 SELECT 2 a,2 b FROM dual UNION ALL 4 SELECT 3 a,2 b FROM dual 5 )SELECT SUM(1) FROM tt; SUM(1) ---------- 3 你可以这么理解: select sum(字段) from 表名; 是对表里面的字段求和,这个我想你不会陌生。 那么如果这个表里面这个字段的值全是【1】的话就是: select sum(1) from 表名; 了。这么说你应该可以理解了。
sum(2) = count(*)*2
sum(3) = count(*)*3
sum.......
有多少记录就有多少个1相加,可以作为统计记录的一种方法,当然还可以COUNT(*)来统计
SQL> WITH tt AS(
2 SELECT 1 a,2 b FROM dual
3 )SELECT SUM(1) FROM tt; SUM(1)
----------
1SQL>
SQL> WITH tt AS(
2 SELECT 1 a,2 b FROM dual UNION ALL
3 SELECT 2 a,2 b FROM dual
4 )SELECT SUM(1) FROM tt; SUM(1)
----------
2SQL>
SQL> WITH tt AS(
2 SELECT 1 a,2 b FROM dual UNION ALL
3 SELECT 2 a,2 b FROM dual UNION ALL
4 SELECT 3 a,2 b FROM dual
5 )SELECT SUM(1) FROM tt; SUM(1)
----------
3
你可以这么理解:
select sum(字段) from 表名; 是对表里面的字段求和,这个我想你不会陌生。
那么如果这个表里面这个字段的值全是【1】的话就是:
select sum(1) from 表名; 了。这么说你应该可以理解了。