请教:分析函数问题

wfeng7907 2005-06-15 09:20:12
请教:COUNT(*)over()和COUNT(*)over(ORDER BY COL)有什么区别?
COUNT(*)over()的用处是什么?
...全文
72 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wfeng7907 2005-06-15
  • 打赏
  • 举报
回复
明白了,多谢!!给分!
沝林 2005-06-15
  • 打赏
  • 举报
回复
COUNT(*)over(ORDER BY a)应该是按a的顺序累计条数,是不是指累计的是>=a的记录数?
-------
是<=a的记录数吧
bzszp 2005-06-15
  • 打赏
  • 举报
回复
自己试一下就知道了
wfeng7907 2005-06-15
  • 打赏
  • 举报
回复
COUNT(*)over(ORDER BY a)应该是按a的顺序累计条数,是不是指累计的是>=a的记录数?
沝林 2005-06-15
  • 打赏
  • 举报
回复
select a,b,COUNT(*)over(partition by a ORDER BY b) from b
a b COUNT(*)over(partition by a ORDER BY b)
1 1 1
2 2 1
2 3 2
3 1 1
4 1 1
4 2 3
4 2 3
5 1 1
沝林 2005-06-15
  • 打赏
  • 举报
回复
错了,不好意思,COUNT(*)over(ORDER BY a)应该是按a的顺序累计条数
select a,COUNT(*)over(ORDER BY a) from t
a COUNT(*)over(ORDER BY a)
1 1
2 3
2 3
5 4
7 5
沝林 2005-06-15
  • 打赏
  • 举报
回复
COUNT(*)over() 是计算所有记录条数,和COUNT(*)over(ORDER BY COL)差不多,唯一区别就是后者经过排序了,partition by col是按col分组,计算每组的count(*)
select a,COUNT(*)over() from t
a COUNT(*)over()
1 5
7 5
2 5
2 5
5 5
select a,COUNT(*)over(ORDER BY a) from t
a COUNT(*)over(ORDER BY a)
1 5
2 5
2 5
5 5
7 5

select a,COUNT(*)over(partition BY a) from t
a COUNT(*)over()
1 1
2 2
2 2
5 1
7 1


17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧