mysql:5954
From: KAWAJI Shinya <KAWAJI Shinya <kawaji@xxxxxxxxxx>>
Date: Sun, 18 Aug 2002 01:36:19 +0900
Subject: [mysql 05954] Re: グループの最終行の選択
かわじ、です > アクセスした人のもっとも最近の答え(最終行)が知りたいと思い > 次のように記述しました. > (GROUP BY は先頭行レコードを選択する?) > > mysql> select name, ans, u_date from result > group by name > order by name, u_date desc; されようとしていることは、MySQL マニュアルの以下の項目と同じだと思います。 3.5.4 The Rows Holding the Group-wise Maximum of a Certain Field http://www.mysql.com/doc/en/example-Maximum-column-group-row.html ということで、これと全く同じ解決方法ですと、以下のいずれかになります。 mysql> create temporary table res_tmp -> select name,max(u_date) as u_date from result group by name; Query OK, 2 rows affected (0.01 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> select result.name, result.ans, result.u_date -> from res_tmp left join result on res_tmp.name = result.name -> and res_tmp.u_date = result.u_date; +-------+------+---------------------+ | name | ans | u_date | +-------+------+---------------------+ | C0124 | 529 | 2002-08-01 14:22:13 | | C0125 | 384 | 2002-07-30 02:36:00 | +-------+------+---------------------+ 2 rows in set (0.00 sec) mysql> select name, -> 0 + substring( max( concat(u_date,ans) ), 20) as ans, -> left( max( concat(u_date,ans) ), 19) as u_date -> from result group by name; +-------+------+---------------------+ | name | ans | u_date | +-------+------+---------------------+ | C0124 | 529 | 2002-08-01 14:22:13 | | C0125 | 384 | 2002-07-30 02:36:00 | +-------+------+---------------------+ 2 rows in set (0.01 sec) -- Shinya Kawaji
5950 2002-08-17 23:46 [Kazumasa Nakamura <k] グループの最終行の選択 5951 2002-08-17 23:45 ┣[上野 和風 <nati24@x] Re: [ グループの最終行の選択 5952 2002-08-17 23:48 ┣[上野 和風 <nati24@x] 5953 2002-08-18 00:34 ┣["Y.Higashi" <Y.Higas] -> 5954 2002-08-18 01:36 ┗[KAWAJI Shinya <kawaj] 5955 2002-08-18 15:58 ┗[KAWAJI Shinya <kawaj]