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