SQLの集約関数は、一連の値で計算を実行し、単一の値を返すために使用される強力なツールです。これらは、データベースから統計情報を取得するために、 SELECT
ステートメントと併せて一般的に使用されます。一般的な集計関数のそれぞれを探りましょう。
合計:この関数は、数値列の合計を計算します。指定された列にすべての値を追加するために使用されます。たとえば、販売テーブルで総売上を見つけるには、以下を使用します。
<code class="sql">SELECT SUM(sales_amount) FROM sales;</code>
AVG :この関数は、数値列の平均を計算します。販売されているアイテムの平均価格など、データの平均値を見つけるのに最適です。
<code class="sql">SELECT AVG(price) FROM products;</code>
カウント:この関数は、指定された基準に一致する行数をカウントします。一般に、テーブル内のレコードの数または列の非ヌル値の数を取得するために使用されます。
<code class="sql">SELECT COUNT(*) FROM customers; -- Counts all rows in the customers table SELECT COUNT(email) FROM customers; -- Counts non-null email entries</code>
MIN :この関数は、指定された列の最小値を返します。製品リストの最低価格など、最小値を見つけるのに役立ちます。
<code class="sql">SELECT MIN(price) FROM products;</code>
MAX :この関数は、指定された列で最大の値を返します。従業員のテーブルの最大給与など、最高の価値を見つけるために使用できます。
<code class="sql">SELECT MAX(salary) FROM employees;</code>
はい、単一のSQLクエリで複数の集計関数を組み合わせることができます。これは、同じデータセットから複数の統計を取得する必要がある場合に便利です。 1つのクエリでSUM
、 AVG
、およびCOUNT
使用する方法を示す例を次に示します。
<code class="sql">SELECT SUM(sales_amount) AS total_sales, AVG(sales_amount) AS average_sale, COUNT(*) AS number_of_sales FROM sales;</code>
この例では、クエリは販売表に関する3つの異なる統計を返します。販売総額、平均販売額、販売取引のカウントです。この方法で集計関数を組み合わせることにより、複数の要約情報を一度に効率的に抽出できます。
Aggregate関数を使用してGROUP BY
を使用すると、データセット全体ではなく、データ内の行のグループに関数を適用できます。これは、特定の基準によってグループ化された要約レポートまたは統計を生成するために重要です。違いは次のとおりです。
グループなし: GROUP BY
なしで集計関数を使用する場合、関数は結果セット全体に適用されます。例えば:
<code class="sql">SELECT AVG(salary) FROM employees;</code>
このクエリは、テーブル内のすべての従業員の平均給与を計算します。
Group by : GROUP BY
を使用すると、 GROUP BY
によって定義されたグループごとに集約関数が個別に計算されます。例えば:
<code class="sql">SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department;</code>
このクエリはemployees
テーブルの各部門の平均給与を計算します。 GROUP BY
グループは、 AVG
関数を適用する前に部門ごとに行をグループ化し、部門固有の統計を確認できるようにします。
NULL
値は、 NULL
値が計算の結果に影響を与える可能性があるため、null値の処理はSQLの集計関数を操作することの重要な側面です。異なる集計関数を持つNULL
値を管理するための戦略は次のとおりです。
NULL
値を自動的に無視します。合計または平均を計算する場合、SQLは行が存在しないかのようにNULL
を扱うため、それらを処理するために特別なアクションをとる必要はありません。COUNT(*)
またはCOUNT(column_name)
を使用して、 NULL
値を含めるか除外することを選択できます。 COUNT(*)
、 NULL
値のある行を含むすべての行をカウントしますが、 COUNT(column_name)
指定された列の非NULL
値のみをカウントします。NULL
値を無視します。指定された列の非NULL
値の最小値または最大値を返します。計算にNULL
値を含める場合は、 COALESCE
またはIFNULL
関数を使用して、 NULL
デフォルト値に置き換えることができます。たとえば、列内のNULL
値を含むすべての行をカウントしますが、 NULL
SUM
でゼロとして扱うには、以下を使用できます。
<code class="sql">SELECT COUNT(*) AS total_rows, SUM(COALESCE(sales_amount, 0)) AS total_sales FROM sales;</code>
このクエリでは、 COALESCE
SUM
が計算される前にNULL
sales_amount
0
に置き換え、 NULL
値が合計にゼロとして寄与するようにします。
以上がSQLで集計関数(合計、AVG、カウント、MIN、MAX)を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。