SQL:如何在Oracle中对多列使用分析函数?
我需要统计多个栏目,以下是我的写作:SQL:如何在Oracle中对多列使用分析函数?,sql,oracle,Sql,Oracle,我需要统计多个栏目,以下是我的写作: with t_suml1 as(select id, date, sum(list1) result from table group by id,date), t_avgl2 as(select id, date, avg(list2) result from talbe group by id,date), t_countl3 as(select id, date, count(list3) result from table group
with
t_suml1 as(select id, date, sum(list1) result from table group by id,date),
t_avgl2 as(select id, date, avg(list2) result from talbe group by id,date),
t_countl3 as(select id, date, count(list3) result from table group by id,date)
select s.id, s.date, s.result, t_avgl2.result, t_countl3.result
from t_suml1 s
inner join t_avgl2 a on s.id=a.id and s.date=a.date
inner join t_countl3 c on s.id=c.id and s.date=c.date
还有别的办法吗 对不起,这是个愚蠢的问题
select id, date,sum(list1),avg(list2), count(list3) result from table group by id,date
为什么不使用select id、date、sum(列表1)、avg(列表2)、count(列表3)从表组中按id、date生成结果?你有三张不同的桌子吗?
select s.id, s.date, s.result, t_avgl2.result
,sum(list1) over (partition by id, date)
,avg(list1) over (partition by id, date)
,count(list1) over (partition by id, date)
--totals:
,sum(list1) over () as total_sum
,avg(list1) over () as total_avg
,count(list1) over () as total_cnt
from t_suml1 s
inner join t_avgl2 a on s.id=a.id and s.date=a.date
inner join t_countl3 c on s.id=c.id and s.date=c.date