1

私はこのようなテーブルを持っています -

+----+---------------------+------------+---------+--------------------+
| id | check_date          | number     | status  | sid                |
+----+---------------------+------------+---------+--------------------+
|  5 | 2012-09-29 17:44:34 | 3366064235 | SUCCESS | 1348940709163284   |
|  6 | 2012-09-29 19:40:30 | 3366064235 | FAILED  | 12345678876543     |
|  7 | 2012-09-29 17:47:30 | 4466064235 | SUCCESS | 7895345678876543   |
|  8 | 2012-09-29 19:47:30 | 4466064235 | SUCCESS | 789876545678876543 |
+----+---------------------+------------+---------+--------------------+

各番号の最終更新ステータスを取得したい。どうすれば入手できますか? check_date desc による番号順でグループ化しようとしましたが、うまくいきません。

4

2 に答える 2

5

次のようなものを使用できます。

select t1.id, 
    t1.check_date,
    t1.number,
    t1.status
from yourtable t1
inner join
(
    select max(check_date) maxdate, number
    from yourtable
    group by number
) t2
    on t1.check_date = t2.maxdate
    and t1.number = t2.number

デモで SQL Fiddle を参照してください

于 2012-10-02T17:40:16.133 に答える
0
select number, Status, Check_date from MYTable A
where check_date = (select max(Check_date) from MYTable where number=A.number)
于 2012-10-02T17:40:19.607 に答える