2

このクエリを機能させるにはどうすればよいですか?

SELECT column1.....,SUM(Hits) AS Hits   
FROM table 
WHERE  SUM(Hits) > 100
GROUP BY column1.....

問題はwhere句、mysql表示エラーです:

Error Code : 1111
Invalid use of group function

クエリを次のように変更しようとしています:

 SELECT column1.....,SUM(Hits) AS Hits   
    FROM table 
    WHERE  Hits > 100
    GROUP BY column1.....

それは役に立たなかった。

ありがとう

4

3 に答える 3

9
SELECT column1.....,SUM(Hits) AS HitsSum 
FROM table 
GROUP BY column1.....
HAVING HitsSum > 100
于 2010-06-29T13:17:00.990 に答える
2

WHEREエラーの理由は、句で集計関数、または集計関数を使用して派生列の列エイリアスを使用できないためです。これらは句でのみ使用でき、HAVING句を定義する必要がありますGROUP BY(まだ存在しない場合)。

GROUP BYまたは句で列エイリアスを使用することはお勧めしませんHAVING。クエリが他のデータベースに移植できないリスクがあります。GROUP BYSQL Serverは、 orHAVING句で列エイリアスをサポートしていることを私が知っている唯一の他のデータベースです。

  SELECT t.column1....., SUM(t.hits) AS HitsSum 
    FROM TABLE t
GROUP BY t.column1.....
  HAVING SUM(t.hits) > 100
于 2010-06-29T16:19:25.703 に答える
1
SELECT column1.....,SUM(Hits) AS Sum_Hits   
FROM table 
GROUP BY column1.....
HAVING Sum_Hits > 100
于 2010-06-29T13:18:11.813 に答える