ホームページ > データベース > mysql チュートリアル > データベーステーブル内の複数の列の平均を計算するにはどうすればよいですか?

データベーステーブル内の複数の列の平均を計算するにはどうすればよいですか?

DDD
リリース: 2024-12-31 08:39:10
オリジナル
868 人が閲覧しました

How to Calculate the Average of Multiple Columns in a Database Table?

複数のテーブル列の平均の計算

データベース テーブル操作のコンテキストでは、多くの場合、複数の列にわたる平均値を計算する必要があります。これは、データを要約または分析する必要がある場合に特に役立ちます。プロセスを説明するための具体的な例を考えてみましょう。

シナリオ:

「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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート