1

テーブルがあれば

shirt

+--------+------+
| color  | size |
+--------+------+
| red    |    2 |
| red    |    4 |
| red    |    2 |
| blue   |    3 |
| blue   |    5 |
| yellow |    2 |
| yellow |    7 |
+--------+------+

平均以上のものだけを表示したい

それで

shirt 

+--------+------+
| color  | size |
+--------+------+
| red    |    4 |
| blue   |    5 |
| yellow |    7 |
+--------+------+

MYSQL でこれを行う最善の方法は何でしょうか?

編集:別のセットのコードがあります。簡単な例を作成したので、それがどのように行われるかを確認してから、自分で試してみてください。

4

3 に答える 3

4

試す:

SELECT shirt.color, shirt.size
FROM shirt INNER JOIN (SELECT color, AVG(size) size FROM shirt GROUP BY color) AS table2
ON shirt.color = table2.color
WHERE shirt.size >= table2.size

ここにSQLFiddleがあります

アップデート

同じテーブル名で。

于 2013-07-11T02:52:44.863 に答える