假设我有一张统计表:
Page | Action | Time
--------------------
Home | Logon | 12
Home | Logon | 11
Home | Search | 20
About| Comment| 10
我可以编写一个查询来获取每个页面的平均操作时间:
select Page, avg(Time) from statistics group by Page
但我想更聪明一点。为了突出显示哪些页面的操作最慢,我想获得(时间 - 所有页面上所有操作的平均时间)的总和。我可以在单独的查询中做到这一点:
select avg(Time) from statistics
-> 15
select Page, sum(Time - 15) from statistics group by Page
问题是,有没有办法在一个查询中做到这一点?
显然select Page, sum(Time - avg(Time)) from statistics group by Page
行不通。Oracle 抛出“ORA-00937: not a single-group group function”。