基本的なSQLクエリでは、レコードの取得、挿入、更新、削除が可能ですが、集計クエリでは、大規模な結果セットから合計、平均、または最小値/最大値を提供することで、データベースインタラクションを新しいレベルに引き上げます。この記事では、集計SQLクエリの基礎を探り、集計SQLクエリを使用してデータを効果的に分析および要約する方法を検討します。
集計関数を理解する
SQLの集計関数は行のセットを操作し、出力として単一の値を返します。これらの関数は、データベース内のデータに対して計算を実行する場合に非常に役立ちます。一般的に使用される集計関数には次のようなものがあります:
1. COUNT()
COUNT()
関数は、指定された条件を満たす行の数を集計します。全ての行、または特定の基準を満たす行をカウントするために使用できます。
SELECT COUNT(*) AS total_records FROM employees;
2. SUM()
SUM()
関数は、数値列の総数を計算します。
SELECT SUM(salary) AS total_salary FROM employees;
3. AVG()
AVG()
関数は、数値列の平均値を求めます。
SELECT AVG(age) AS average_age FROM students;
4. MAX()とMIN()
MAX()
関数とMIN()
関数は、それぞれ列の最大値と最小値を識別します。
SELECT MAX(price) AS max_price, MIN(price) AS min_price FROM products;
GROUP BYを使用したデータのグループ化
SQLの集計クエリの強力な側面の1つは、GROUP BY
句を使用して特定の基準に基づいてデータをグループ化できることです。これにより、データのサブセットの分析が容易になり、より詳細な洞察が可能になります。
COUNT()を使用したグループ化
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department;
AVG()を使用したグループ化
SELECT department, AVG(salary) AS average_salary
FROM employees
GROUP BY department;
HAVINGを使用したグループのフィルタリング
HAVING
句は、グループ化されたデータに適用される条件に基づいて集計クエリの結果をフィルタリングするために、GROUP BY
と組み合わせて使用されます。
SELECT department, AVG(salary) AS average_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;
集計関数の結合
SQLでは、単一のクエリで複数の集計関数を結合させて、データに対する包括的な洞察を提供できます。
SELECT department, COUNT(*) AS employee_count, AVG(salary) AS average_salary
FROM employees
GROUP BY department;
Navicatでの集計関数の使用
関数の正確な名前や入力パラメータがわからない場合は、SQLエディタで入力を開始すると、Navicat が一致するオプションのリストを表示し、そこから選択して用語を自動補完できます。集計関数はギリシャ語のシグマ記号 (Σ) で識別されます:
結論
集計SQLクエリは、リレーショナルデータベースでのデータ分析とレポート作成に不可欠なツールです。情報を要約する場合でも、平均を計算する場合でも、特定の基準に基づいてデータをグループ化する場合でも、データベースクエリを熟達するためには、集計関数と GROUP BY
や HAVING
などの句を活用する方法を理解することが不可欠です。