2

重複の可能性:
mysql: GROUP BY 内で LIMIT を使用して、グループごとに N 個の結果を取得しますか?

私は次のデータを持っています。

id      val
smith   20
smith   10
smith    8
smith   30
jones   40
jones   10
jones   30
jones   30

私が望むのは、ID でグループ化し、各 ID の 2 つの最大値を合計することです。

smith   50  from 30+20
jones   70  from 40+30

ありがとう。

4

1 に答える 1

2

各 ID の上位 2 つの値のみの合計を取得することを心配していない場合は、次のようにする必要があります。

SELECT SUM(val) FROM table_name GROUP BY id ORDER BY id ASC

ただし、「グループ内の上位 N 値を取得するにはどうすればよいですか」という質問は重複しており、ここで回答されています: Using LIMIT within GROUP BY to get N results per group?

于 2012-11-01T18:19:59.907 に答える