0

これは私のテーブルです

id    name    score   date
1     John    5       2012-01-14
2     smith   7       2012-01-12
3     mariah  9       2012-03-22
4     John    8       2012-05-23

さて、一人一人のスコアを選びたいのですがlimit 1、ジョンのスコアが複数ある場合は、より最近の魔女を1人選びたいということです。このような

出力:

id    name    score   date
2     smith   7       2012-01-12
3     mariah  9       2012-03-22
4     John    8       2012-05-23

Group by を使用する必要がありますか?

4

1 に答える 1

0

のようなものはどうですか

SELECT  mt.*
FROM    MyTable mt INNER JOIN
        (
            SELECT  Name,
                    MAX(date) date
            FROM    MyTable
            GROUP BY    Name
        ) lastDate  ON  mt.Name = lastDate.Name
                    AND mt.date = lastDate.date
于 2012-07-26T04:11:04.100 に答える