概要 :このチュートリアルでは、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 HAVINGCode 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の使用方法を学びました。 グループの検索条件を指定する句。