0

私は声明を持っています

SELECT COUNT(*) as num_requests, ip_address FROM requests
GROUP BY ip_address
ORDER BY num_requests DESC;

次の句を使用するとWHERE num_requests = 3、構文エラーが発生します

SELECT COUNT(*) as num_requests, ip_address 
FROM requests
WHERE num_requests = 3
GROUP BY ip_address
ORDER BY num_requests DESC;

「where句」の不明な列「num_requests」

WHERE上記で返された結果セット全体にネストされたクエリまたは結合ステートメントを記述せずに、この句を使用する方法はありますか?

4

2 に答える 2

3

あなたが必要ですhaving:)

SELECT COUNT(*) as num_requests, ip_address FROM requests
GROUP BY ip_address
HAVING COUNT(*) = 3
ORDER BY num_requests DESC;

WHEREなぜ使用できなかったのかについてのメモを追加するにはbut HAVING: SUM, MIN,MAX,AVG,COUNTetc などの集計では機能しませんWHERE。したがって、後者を使用する必要があります。

于 2012-11-27T10:40:38.093 に答える
3
SELECT COUNT(*) as num_requests, ip_address 
FROM requests
GROUP BY ip_address
HAVING num_requests = 3
ORDER BY num_requests DESC
于 2012-11-27T10:36:48.823 に答える