0

私の悪い説明で申し訳ありませんが、各果物を最後に食べた各人の最新の日付を取得しようとしています. 私はそれを正しくグループ化しているとは思わないか、完全に見逃したものがある. 誰かがこれで私を助けることができますか? 前もって感謝します。

T1
+--------+--------+--------+
| person | fruit  |  date  |
+--------+--------+--------+
|  Bob   | apple  | 1-1-13 |
|  Bob   | apple  | 1-4-13 |
|  Bob   | apple  | 1-6-13 |
|  Bob   | orange | 1-2-13 |
|  John  | apple  | 1-3-13 |
|  John  | orange | 1-2-13 |
|  John  | orange | 1-4-13 |
|  John  | orange | 1-9-13 |
+--------+--------+--------+

Results I'm looking for
+--------+--------+--------+
| person | fruit  |  date  |
+--------+--------+--------+
|  Bob   | apple  | 1-6-13 |
|  Bob   | orange | 1-2-13 |
|  John  | apple  | 1-3-13 |
|  John  | orange | 1-9-13 |
+--------+--------+--------+

同様の投稿を読んで試したこと。

SELECT * FROM T1 
  JOIN (
    SELECT person,max(date) AS latest 
      FROM T1 GROUP BY person
    ) T2
  ON T1.person = T2.person AND T1.date = T2.latest

Resulting in
+--------+--------+--------+
| person | fruit  |  date  |
+--------+--------+--------+
|  Bob   | apple  | 1-6-13 |
|  John  | orange | 1-9-13 |
+--------+--------+--------+

果物の列も分離するにはどうすればよいですか?

4

1 に答える 1

2

ここは必要ありませんJOIN。を含む単純な集約GROUP BY

SELECT person, fruit, DATE_FORMAT(MAX(date), '%c-%e-%y') AS max_date
FROM T1
GROUP BY person, fruit

結果

| | 人物 | フルーツ | MAX_DATE |
------------------------------
| | ボブ | リンゴ | 1-6-13 |
| | ボブ | オレンジ | 1-2-13 |
| | ジョン | リンゴ | 1-3-13 |
| | ジョン | オレンジ | 1-9-13 |

実際に見る

于 2013-01-11T01:15:19.657 に答える