在SQL

2012-10-24 44 views
0

使用聚合函數max我有以下查詢在SQL

select 
    sub.W 
from 
    (select 
     W, count(W) as N 
    from L 
    group by W) sub 
where 
    sub.N >= max(sub.N) 

,我得到這個錯誤:

Error code 1111, SQL state HY000: Invalid use of group function
Line 1, column 1

有什麼不對?

回答

0

嘗試:

select sub.W  
from 
(
     select W, count(W) as N 
     from L 
     group by W 
) sub  
where sub.N >= (select max(N) 
       from (
         select W, count(W) as N 
         from L 
         group by W 
        ) sub2) 
+0

產生錯誤太 – CodeGuy

+0

是的,我知道,現在試試吧。 – Parado

3

你有沒有嘗試過這樣的:

select sub.W 
from 
(
     select W, count(W) as N 
     from L 
     group by W 
) sub 
where n >= (select max(N) 
      from 
      (
       select count(W) as N 
       from L 
       group by W 
      ) x) 

SQL Fiddle with Demo

+0

+1你再次:) – Parado

+0

效果很好。哇如此complcated爲基本的東西。謝謝!!什麼是「x」?這是強制性的嗎? – CodeGuy

+0

'x'是子查詢的別名。如果你刪除它,你很可能會得到一個錯誤,因爲派生表需要別名 – Taryn