今天发现了一个oralce的好东西,over函数,它跟在聚合函数的后面,可以指定聚合函数的范围,顺序。
有了这个函数,相当于是只做汇总,而不做记录的合并。
既保持记录的条数不变,而给出总数。很好,很好
基础数据是
| HASH_KEY_COLUMN | DATA |
| 2009-5-10 14:11 | afsdfa |
| 2009-5-11 14:11 | fdasfa |
| 2009-5-13 14:11 | afsdfa |
| 2009-5-12 14:11 | fdasfa |
SELECT SUM(LENGTH(data))OVER(PARTITION BY data) FROM hash_example
GROUP BY data
这条语句的返回值是2个6
因为是先执行group by将4条记录变为2条,然后才执行的over
SELECT SUM(LENGTH(data))OVER(PARTITION BY data) FROM hash_example
这条语句就可以返回4个12
SELECT SUM(LENGTH(data)) FROM hash_example
GROUP BY data
这条语句会返回2个12
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/146865/viewspace-1022052/ ,如需转载,请注明出处,否则将追究法律责任。