SQLite クラシック チュ...login
SQLite クラシック チュートリアル
著者:php.cn  更新時間:2022-04-13 17:05:02

SQLiteHaving句


HAVING 句を使用すると、最終結果に表示されるグループ化された結果をフィルターするための条件を指定できます。

WHERE 句は選択した列に条件を設定し、HAVING 句は GROUP BY 句によって作成されたグループに条件を設定します。

構文

以下は、SELECT クエリ内の HAVING 句の位置です:

SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY

クエリでは、HAVING 句を次の場所に配置する必要があります。 GROUP BY 句は ORDER BY 句の前に配置する必要があります。 HAVING 句を含む SELECT ステートメントの構文は次のとおりです:

SELECT columns1, column2
FROM table1, table2
WHERE [条件]
GROUP BY column1, column2
HAVING [条件]
ORDER BY column1, column 2

COMPANY テーブルに次のレコードがあるとします。

ID NAME AGE ADDRESS SALARY
---------- ---------- -------- -- ---------- ----------
1 ポール 32 カリフォルニア 20000.0
2 アレン 25 テキサス 15000.0
3 テディ 23 ノルウェー 20000.0
4 マーク 25 リッチモンド 65000.0
5デビッド27テキサス85000.0
6キム22サウスホール45000.0
7ジェームズ24ヒューストン10000.0
8ポール24ヒューストン20000.0
9ジェームズ44ノルウェー5000.0
10ジェームス455000.0

すべてのレコードを表示する例です。

sqlite > SELECT * FROM COMPANY GROUP BY name HAVING <2;
結果 次の結果が生成されます:

IID NAME AGE Address Salary
--------------------------------- -------------------------------------------------- - ------ ----------
2 アレン 25 テキサス 15000
5 デビッド 27 テキサス 85000
6 キム 22 サウスホール 45000
4 マーク 25 リッチモンド 65000
3 テディ 23 ノルウェー20000
これは、名前カウントが 2 より大きいすべてのレコードを表示する例です:

sqlite > SELECT * FROM COMPANY GROUP BY name HAVING count(name) > これにより、以下の結果:
ID 名前 年齢 住所 給与

---------- ---------- ---------- ---------- ---------

10ジェームズ