ITPub博客

首页 > 数据库 > Oracle > 关于over()

关于over()

原创 Oracle 作者:mlh9906 时间:2009-05-13 16:24:29 0 删除 编辑

今天发现了一个oralce的好东西,over函数,它跟在聚合函数的后面,可以指定聚合函数的范围,顺序。

有了这个函数,相当于是只做汇总,而不做记录的合并。

既保持记录的条数不变,而给出总数。很好,很好

基础数据是

HASH_KEY_COLUMNDATA
2009-5-10 14:11afsdfa
2009-5-11 14:11fdasfa
2009-5-13 14:11afsdfa
2009-5-12 14:11fdasfa

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博客 ” ,链接:http://blog.itpub.net/146865/viewspace-1022052/,如需转载,请注明出处,否则将追究法律责任。

全部评论

注册时间:2009-04-27

  • 博文量
    11
  • 访问量
    13101