ホームページ > データベース > mysql チュートリアル > SQL を使用して、他の 2 つのフィールドの一意の組み合わせごとにフィールドの平均を計算するにはどうすればよいですか?

SQL を使用して、他の 2 つのフィールドの一意の組み合わせごとにフィールドの平均を計算するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-30 10:16:02
オリジナル
335 人が閲覧しました

How to calculate the average of a field for each unique combination of two other fields using SQL?

AVG および GROUP BY を使用した SQL クエリ: 各フィールドの平均値の抽出

テーブルから特定の情報を抽出する SQL クエリを求めます。 、つまり、一意の「id」と「pass」ごとの「val」フィールドの平均です。 value.

これを実現するには、シンプルだが効率的なクエリを使用できます。

<code class="sql">SELECT id, pass, AVG(val) AS val_1
FROM data_r1
GROUP BY id, pass;</code>
ログイン後にコピー

このクエリは、データを「id」と「pass」でグループ化し、「」の平均値を計算します。各組み合わせの val'。結果のテーブルには、「id」値と「pass」値の一意のペアごとに行が含まれます。

または、すべての「pass」値の平均値を含む一意の「id」ごとに 1 つの行を作成することもできます。 、次のクエリを使用します:

<code class="sql">SELECT d1.id,
    (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 
     WHERE d2.id = d1.id AND pass = 1) as val_1,
    (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 
     WHERE d2.id = d1.id AND pass = 2) as val_2,
    (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 
     WHERE d2.id = d1.id AND pass = 3) as val_3,
    (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 
     WHERE d2.id = d1.id AND pass = 4) as val_4,
    (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 
     WHERE d2.id = d1.id AND pass = 5) as val_5,
    (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 
     WHERE d2.id = d1.id AND pass = 6) as val_6,
    (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 
     WHERE d2.id = d1.id AND pass = 7) as val_7
from data_r1 d1
GROUP BY d1.id</code>
ログイン後にコピー

このクエリは、各「パス」値に対してネストされたサブクエリを使用して平均を計算します。次に、結果を「id」ごとに集計し、データの統合ビューを提供します。

以上がSQL を使用して、他の 2 つのフィールドの一意の組み合わせごとにフィールドの平均を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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