人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

mysqlのSQLについてお聞きします。

studentというテーブルがあります。

クラス,名前,身長,体重
-----------------------
1組,太郎,180,72
1組,次郎,180,71
1組,サブ,170,80
2組,かおる,181,73
2組,はじめ,181,72
2組,みなみ,171,81

各クラスの一番大きな生徒を抽出したいと考えています。
大きなの定義は、「身長が高い。身長が同じの場合には、身長に加え体重が重い生徒。」です。

上記の例の場合は、下記の2行となります。
1組,太郎,180,72
2組,かおる,181,73

よろしくお願いいたします。

●質問者: amarank
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:MySQL SQL みなみ クラス 体重
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● うぃんど
●60ポイント

方法は1つではありませんが、身長と体重を1つに結合することによって判別式を簡単にした例を作ってみました

体重が999kgを超える場合は千倍ではなく万倍してください

身長を小数点以下まで数えている場合も適宜倍数を変えてください

SELECT a.*
FROM student a
WHERE NOT EXISTS(SELECT * FROM student b WHERE (b.クラス = a.クラス) AND (b.身長 * 1000 + b.体重 > a.身長 * 1000 + a.体重))
ORDER BY a.クラス;

http://dev.mysql.com/doc/refman/5.1-olh/ja/exists-and-not-exists...

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ