2

次のような構造のデータベースに情報があります。

shoe size name    weight
9         bob     150
9         tom     250
9         joe     100
5         billy   75
5         franky  80
etc.

あなたはアイデアを得る。靴のサイズごとに重量を合計し、それぞれを割ってパーセントを取得します。したがって、靴のサイズ 9 は 500 になります。次に、各サイズを合計で割ると、ボブは靴のサイズ グループ 9 の 30%、トムは靴のサイズ グループ 9 の 50%、ジョーは靴の 20% になります。サイズグループ 9

これを行う方法についてのアイデアはありますか?

4

1 に答える 1

1
SELECT SUM(weight) as sum, COUNT(*) as count
FROM mytable
GROUP BY size

これにより、重みの合計と各サイズの数が得られ、平均を取得できます

または、一発でやりたい場合

  SELECT  size, SUM(weight)/COUNT(*) as average
    FROM mytable
    GROUP BY size

編集 - 私はあなたの質問を読み違えました。これはあなたが尋ねたことを実行するクエリです

   SELECT  b.name,  b.weight/sum(a.weight) as average  
   FROM  table as a JOIN table as b on a.size=b.size     
   WHERE  1 group by a.size, b.name
于 2013-02-22T20:39:32.073 に答える