
oracle 问题,如下,
distinctt1.*,count(1)over()astotalCount加这个代表什么意思???over()???...
distinct t1.*,count(1) over() as totalCount
加这个代表什么意思???
over() ??? 展开
加这个代表什么意思???
over() ??? 展开
1个回答
展开全部
over是新版ORAcle的分析函数,可以返回多列值,而聚合函数只能返回一列。Over(order by)是开窗函数
给你举个例子,分类统计 (并显示信息)
t2表:
A B C
-- -- ----------------------
m a 2
n a 3
m a 2
n b 2
n b 1
x b 3
x b 2
x b 4
h b 3
select a,c,sum(c)over(partition by a)(按照a列分区) from t2
得到结果:
A B C SUM(C)OVER(PARTITIONBYA)
-- -- ------- ------------------------
h b 3 3
m a 2 4
m a 2 4
n a 3 6
n b 2 6
n b 1 6
x b 3 9
x b 2 9
x b 4 9
如果用sum,group by 则只能得到
A SUM(C)
-- ----------------------
h 3
m 4
n 6
x 9
无法得到B列值
给你举个例子,分类统计 (并显示信息)
t2表:
A B C
-- -- ----------------------
m a 2
n a 3
m a 2
n b 2
n b 1
x b 3
x b 2
x b 4
h b 3
select a,c,sum(c)over(partition by a)(按照a列分区) from t2
得到结果:
A B C SUM(C)OVER(PARTITIONBYA)
-- -- ------- ------------------------
h b 3 3
m a 2 4
m a 2 4
n a 3 6
n b 2 6
n b 1 6
x b 3 9
x b 2 9
x b 4 9
如果用sum,group by 则只能得到
A SUM(C)
-- ----------------------
h 3
m 4
n 6
x 9
无法得到B列值
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询