概要 :このチュートリアルでは、SQLite HAVING
の使用方法を学習します グループまたは集合体のフィルター条件を指定する句。
SQLite HAVING
の紹介 条項
SQLite HAVING
句は、SELECT
のオプションの句です。 声明。 HAVING
句は、グループの検索条件を指定します。
HAVING
をよく使用します GROUP BY
を含む句 句。 GROUP BY
句は、行のセットを要約行またはグループのセットにグループ化します。次に、HAVING
句は、指定された条件に基づいてグループをフィルタリングします。
HAVING
を使用する場合 句には、GROUP BY
を含める必要があります 句;そうしないと、次のエラーが発生します:
Error: a GROUP BY clause is required before HAVING
Code language: JavaScript (javascript)
HAVING
に注意してください 句はGROUP BY
の後に適用されます 一方、WHERE
GROUP BY
の前に句が適用されます 条項。
次に、HAVING
の構文を示します。 条項:
SELECT
column_1,
column_2,
aggregate_function (column_3)
FROM
table
GROUP BY
column_1,
column_2
HAVING
search_condition;
Code language: SQL (Structured Query Language) (sql)
この構文では、HAVING
句はsearch_condition
を評価します グループごとにブール式として。評価が真の場合にのみ、最終結果セットにグループが含まれます。
SQLite HAVING
条項の例
tracks
を使用します デモンストレーション用のサンプルデータベースのテーブル。
各アルバムのトラック数を見つけるには、GROUP BY
を使用します 次のような条項:
SELECT
albumid,
COUNT(trackid)
FROM
tracks
GROUP BY
albumid;
Code language: SQL (Structured Query Language) (sql)
試してみてください
ID 1のアルバムのトラック数を見つけるために、HAVING
を追加します。 次のステートメントの句:
SELECT
albumid,
COUNT(trackid)
FROM
tracks
GROUP BY
albumid
HAVING albumid = 1;
試してみてください
AlbumId
を参照しました HAVING
の列 条項。
トラック数が18〜20のアルバムを検索するには、HAVING
の集計関数を使用します 次のステートメントに示されている句:
SELECT
albumid,
COUNT(trackid)
FROM
tracks
GROUP BY
albumid
HAVING
COUNT(albumid) BETWEEN 18 AND 20
ORDER BY albumid;
Code language: SQL (Structured Query Language) (sql)
試してみてください
SQLite HAVING
INNER JOIN
を含む句 例
次のステートメントは、tracks
からのデータをクエリします およびalbums
内部結合を使用して、全長が60,000,000ミリ秒を超えるアルバムを検索するテーブル。
SELECT
tracks.AlbumId,
title,
SUM(Milliseconds) AS length
FROM
tracks
INNER JOIN albums ON albums.AlbumId = tracks.AlbumId
GROUP BY
tracks.AlbumId
HAVING
length > 60000000;
Code language: SQL (Structured Query Language) (sql)
試してみてください
このチュートリアルでは、SQLite HAVING
の使用方法を学びました。 グループの検索条件を指定する句。