データ分析の幅が広がる!WHERE句で集計関数とGROUP BY句を組み合わせる
SQLiteのWHERE句における集計関数
使用例
以下は、WHERE句内でCOUNT関数を使用して、特定の条件を満たす行の数を取得する例です。
SELECT COUNT(*)
FROM customers
WHERE country = 'Japan';
このクエリは、customers
テーブルから、country
列がJapan
である行の数を取得します。
使用可能な集計関数
SQLiteでは、以下の集計関数をWHERE句内で使用することができます。
- COUNT(): 行数を取得する
- SUM(): 列の値の合計を取得する
注意事項
WHERE句内で集計関数を使用する際には、以下の点に注意する必要があります。
- 集計関数は、GROUP BY句と一緒に使用することはできません。
- 集計関数は、SELECT句で最初に指定する必要があります。
- 集計関数は、WHERE句内で他の列と比較することはできません。
例
-- 特定の国の顧客の平均注文金額を取得する
SELECT AVG(order_total)
FROM orders
WHERE country = 'Japan';
-- 特定の商品の売上個数を取得する
SELECT COUNT(*)
FROM sales
WHERE product_id = 123;
-- 特定の期間の最高気温を取得する
SELECT MAX(temperature)
FROM weather
WHERE date BETWEEN '2023-01-01' AND '2023-12-31';
WHERE句内で集計関数を使用することで、さまざまな条件に基づいてデータの集計値を取得することができます。これは、データ分析やレポート作成において非常に便利な機能です。
サンプル1:特定の国の顧客の平均注文金額を取得する
SELECT AVG(order_total)
FROM orders
WHERE country = 'Japan';
サンプル2:特定の商品の売上個数を取得する
SELECT COUNT(*)
FROM sales
WHERE product_id = 123;
このクエリは、sales
テーブルから、product_id
列が123である商品の売上個数を取得します。
サンプル3:特定の期間の最高気温を取得する
SELECT MAX(temperature)
FROM weather
WHERE date BETWEEN '2023-01-01' AND '2023-12-31';
このクエリは、weather
テーブルから、date
列が2023年1月1日から2023年12月31日までの間の最高気温を取得します。
サンプル4:特定の条件を満たす顧客のリストを取得する
SELECT *
FROM customers
WHERE country = 'Japan'
AND order_total > 10000;
サンプル5:集計関数とGROUP BY句を組み合わせて使用
SELECT country, COUNT(*) AS customer_count
FROM customers
GROUP BY country;
これらのサンプルコードは、WHERE句内で集計関数を使用する方法を理解するのに役立ちます。
WHERE句以外で集計関数を使用する方法
SELECT句で集計関数を使用することで、SELECTする列に集計値を含めることができます。
SELECT name, COUNT(*) AS order_count
FROM customers
GROUP BY name;
HAVING句は、GROUP BY句と一緒に使用して、集計結果に基づいて行をフィルタリングするために使用されます。
SELECT country, COUNT(*) AS customer_count
FROM customers
GROUP BY country
HAVING customer_count > 100;
サブクエリを使用して、集計値を別のクエリで計算することができます。
SELECT *
FROM customers
WHERE order_total > (
SELECT AVG(order_total)
FROM orders
);
WHERE句以外にも、SELECT句、HAVING句、サブクエリなど、さまざまな方法で集計関数を使用することができます。状況に応じて適切な方法を選択する必要があります。
sql sqlite where-clause