複数のテーブル列の平均の計算
データベース テーブル操作のコンテキストでは、多くの場合、複数の列にわたる平均値を計算する必要があります。これは、データを要約または分析する必要がある場合に特に役立ちます。プロセスを説明するための具体的な例を考えてみましょう。
シナリオ:
「Request」という名前のテーブルがあり、値 R1、R2、R3、R4、そしてR5。テーブル内の各レコードのこれらの値の平均を決定したいと考えています。
初期アプローチ:
これを達成するために、最初に次のクエリを試みました:
Select Req_ID, Avg(R1+R2+R3+R4+R5) as Average from Request Group by Req_ID
ただし、このクエリでは意図した結果が得られません。平均ではなく、値の合計が計算されます。
原因:
AVG 集計関数を使用する場合、指定された引数が式であることを確認することが重要です。単一の数値として評価されます。この場合、複数の列の値を加算し、合計を求めます。
解決策:
平均を計算するために使用できる方法は 2 つあります。正しくは:
1.サブクエリの使用 (2008 構文):
SELECT *, (SELECT AVG(c) FROM (VALUES(R1), (R2), (R3), (R4), (R5)) T (c)) AS [Average] FROM Request
このアプローチでは、サブクエリを使用して平均を計算します。サブクエリは各列から値を選択し、それらを個別の行として扱います。次に、AVG 集計関数を適用して平均を計算します。
2.サブクエリでの UNION の使用 (2005 構文):
SELECT *, (SELECT AVG(c) FROM (SELECT R1 UNION ALL SELECT R2 UNION ALL SELECT R3 UNION ALL SELECT R4 UNION ALL SELECT R5) T (c)) AS [Average] FROM Request
このメソッドは、UNION を使用して、さまざまな列のすべての値を 1 つの列に結合します。次に、AVG 集計関数が結合された列に適用されて平均が計算されます。
結果:
どちらのアプローチでも、リクエスト内の各レコードに正しい平均値が提供されます。テーブル。これらの解決策のいずれかに従うことで、複数のテーブル列の平均を正確に計算し、望ましい結果を得ることができます。
以上がデータベーステーブル内の複数の列の平均を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。