0

私はプロジェクトに取り組んでおり、私がしなければならないことの1つは、いくつかのデータを選択することです

テーブル:

id | unit_id | data1 | data2 | data 3 | data4 | TimeStamp

1 | 1 | 1 | 1 | 1 | 2012-10-18 18:17:42

2 | 1 | 2 | 2 | 2 | 2012-10-18 18:18:42

3 | 1 | 3 | 5 | 3 | 2012-10-20 18:19:42 

4 | 1 | 4 | 7 | 4 | 2012-10-21 18:20:42 

5 | 1 | 5 | 8 | 8 | 2012-10-22 18:21:42 

6 | 2 | 1 | 1 | 1 | 2012-10-18 18:17:42 

7 | 2 | 2 | 2 | 4 | 2012-10-19 18:18:42 

8 | 2 | 3 | 2 | 5 | 2012-10-20 18:19:42 

9 | 2 | 4 | 3 | 6 | 2012-10-21 18:20:42 

そして私が必要とするのは、取得することですSingle LATEST value for EACH unit_id

4

4 に答える 4

2

次のクエリは、unit_id でレコードをグループ化し、最新のタイムスタンプを持つレコードを識別し、それらの結果を同じテーブルに結合し、unit_id とタイムスタンプの値を持つレコードを選択します。

SELECT 
    a.* 
FROM 
    MyTable a
    JOIN (SELECT 
              unit_id, 
              MAX(TimeStamp) 'TimeStamp' 
          FROM 
              MyTable 
          GROUP BY unit_id
         ) as b
    ON a.unit_id = b.unit_id AND a.Timestamp = b.TimeStamp
于 2012-10-19T03:52:34.490 に答える
2

GROUP BY 句を使用して、

SELECT 
    unit_id, max(TimeStamp)
FROM 
    table3
GROUP BY 
    unit_id
于 2012-10-19T03:55:11.300 に答える
1

これを試して

SELECT unit_id , max(tstamp) 
FROM   t 
GROUP BY unit_id
于 2012-10-19T03:57:13.617 に答える
0
SELECT max(timestamp),unit_id FROM table GROUP BY unit_id 
于 2012-10-19T04:00:07.220 に答える