1

私はこのクエリを持っています:

  SELECT
  Max(l.created) AS created,
  l.unit_id,
  l.activity_id AS Active
  FROM unit_log AS l
  GROUP BY l.unit_id, l.activity_id

私が必要とし、取得できないように見えるのは、unit_id ごとの MAX() 行です。別のテーブルに参加しているため、クエリに unit_id が必要です。作成された列はタイムスタンプです。

各 unit_id には数百のエントリがあります。私が気にしているのは、ユニットごとの最新のものだけです。これが機能しない理由を誰かに教えてもらえますか?

4

2 に答える 2

3
SELECT l.unit_id, l.created, l.activity_id
FROM unit_log l
JOIN (SELECT unit_id, MAX(created) AS maxc
      FROM unit_log
      GROUP BY unit_id) m
ON l.unit_id = m.unit_id AND l.created = m.maxc
于 2013-10-03T23:50:50.637 に答える
0

unit_id ごとに activity_id が 1 つしかない限り、クエリは正常に機能するはずです。書かれているように、アクティビティIDごとにユニットごとに1行が提供されます。

おそらくあなたが必要です:

SELECT Max(l.created) AS created, l.unit_id FROM unit_log AS l WHERE l.activity_id = 1 -- またはアクティブであることを示すもの GROUP BY l.unit_id, l.activity_id

于 2013-10-03T23:50:41.987 に答える