mysql:9162
From: nisi <nisi <nisi@xxxxxxxxxx>>
Date: Fri, 09 Apr 2004 22:45:37 +0900
Subject: [mysql 09162] GROUP BY について
はじめまして、西川といいます。 早速ですが、group by を用いた検索を考えているのですが、 結果が思い通りにならず困っています。 mysql> select * From friends; +----+----------+----------+--------+ | id | 1st_name | 2nd_name | height | +----+----------+----------+--------+ | 1 | 田中 | 一郎 | 161 | | 2 | 山田 | 二郎 | 179 | | 3 | 田中 | 二郎 | 171 | | 4 | 佐藤 | 一郎 | 163 | | 5 | 高橋 | 三郎 | 185 | | 6 | 佐藤 | 三郎 | 183 | | 7 | 佐藤 | 二郎 | 173 | | 8 | 高橋 | 一郎 | 165 | | 9 | 田中 | 四郎 | 191 | | 10 | 佐藤 | 四郎 | 193 | | 11 | 鈴木 | 三郎 | 187 | | 12 | 高橋 | 二郎 | 175 | | 13 | 山田 | 一郎 | 169 | | 14 | 高橋 | 四郎 | 195 | | 15 | 鈴木 | 一郎 | 167 | | 16 | 鈴木 | 二郎 | 177 | | 17 | 田中 | 三郎 | 181 | | 18 | 山田 | 四郎 | 199 | | 19 | 鈴木 | 四郎 | 197 | | 20 | 山田 | 三郎 | 189 | +----+----------+----------+--------+ 上記データがあったとして、家族の中で最も背の高い人を代表として、 対家族の順位を付けたいと思い下記sql文を試しましたがうまくいきませんでし た。 mysql> select * From friends group by 1st_name order by height desc; +----+----------+----------+--------+ | id | 1st_name | 2nd_name | height | +----+----------+----------+--------+ | 11 | 鈴木 | 三郎 | 187 | | 5 | 高橋 | 三郎 | 185 | | 2 | 山田 | 二郎 | 179 | | 4 | 佐藤 | 一郎 | 163 | | 1 | 田中 | 一郎 | 161 | +----+----------+----------+--------+ group by をした時点でidの若いものが選ばれてしまうのですが、 これを任意に変えることは出来るのでしょうか? ちなみに欲しい結果は下記のような形です。 +----+----------+----------+--------+ | id | 1st_name | 2nd_name | height | +----+----------+----------+--------+ | 18 | 山田 | 四郎 | 199 | | 19 | 鈴木 | 四郎 | 197 | | 14 | 高橋 | 四郎 | 195 | | 10 | 佐藤 | 四郎 | 193 | | 9 | 田中 | 四郎 | 191 | +----+----------+----------+--------+ 初歩的な質問で申し訳ございませんが、何卒宜しくお願い致します。 (mysqlのversionは3.23.58です)
-> 9162 2004-04-09 22:45 [nisi <nisi@xxxxxxxxx] GROUP BY について 9164 2004-04-10 12:40 ┗[ML account <ml@xxxxx] Re: [ml 09162] GROUP BY について