2016-10-26 20 views
2

having節でselect文の 'aggregate_function(column_name)'が同じである必要がありますか?SQLでは、 'having'句で集約関数を使用する場合、その関数はselect文になければなりませんか?

SELECT column_name, aggregate_function(column_name) 
FROM table_name 
WHERE column_name operator value 
GROUP BY column_name 
HAVING aggregate_function(column_name) operator value; 
+1

あなたはおそらくSQL Serverの(Microsoft製品)とMySQLを使用してすることはできません( Oracle製品)を同時に使用できます。あなたの質問に実際に適用できるタグを選んでください。 2つの製品は、構文と機能が大きく異なります。タグの意味はここにあります。あなたが慣れ親しんだ言葉を持っているか、類似していると思われるので、ランダムに追加しないでください。 –

+0

いいえ、一般的に 'select'の中にある必要はありません。 –

+1

'HAVING'節の内容と同じである必要はありません。グループ化していないフィールドを選択するときには、何らかの集約が必要です。 。 なぜあなたはそれを試してみませんでしたか? – mroach

答えて

2

いいえ。HAVING句で異なる集約関数を使用できます。これは、SELECT句に依存されていない

例:これも有効です

SELECT column_name, SUM(column_name) 
FROM table_name 
WHERE column_name IS NOT NULL 
GROUP BY column_name 
HAVING COUNT(column_name) > 1; 

SELECT column_name_1, SUM(column_name_2) 
FROM table_name 
WHERE column_name_3 IS NOT NULL 
GROUP BY column_name_1 
HAVING COUNT(column_name_4) > 1; 
関連する問題