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