0
I以下の関係を有する:SQLクエリー、having節には何が表示されませんか?
R(A, B, C, D, E)
と次のクエリを有する句に出現することはできませんどの
SELECT ...
FROM R
WHERE ...
GROUP BY B, E
HAVING ???
?:MAX(C)、COUNT(A)、D、B
私はそれらのすべてがうまくいくと信じていますが、私はグループ内の列cの最大値を縛ることができるので、MAX(C)については少し気にしません。 COUNT(A)と同じことです。 Dも動作します。これは単なる属性ですが、GROUP BY句のメンバーをバインドするのは変です。 (あなたがGROUP BY
で何をすべきかである)レコードを集約するとき
Dは動作しません。 HAVINGで 'GROUP BY B、E'を使うので、B、E以外の他の列は集計関数_で現れなければなりません。したがって、MAX(c)とCOUNT(a)は働くはずです。 Dは 'not by group by expression'のようなエラーを発生させます。 –
D = ageとしましょう。年齢が30歳未満の場合はどうしたらいいですか?私はHAVING節がWHERE節と同じものだと思った。 – TheMathNoob
HAVINGはGROUP BYと一緒に使用され、where_aggregate_functions_of_group_byとして意味しますので、HAVING MAX(age)<30'を使用できます。 WHERE節では、 'WHERE MAX(age)<30'を使用することはできません。 –