[英]Get last updated time for all items grouped by category
這是我的物品表:
id (int)
category_id (int)
title (varchar 255)
updated_timestamp (int)
每個項目都有一個category_id。 假設我有以下數據:
1 | 14 | item 1 | 1376164492
2 | 11 | item 2 | 1376164508
3 | 12 | item 3 | 1376164512
4 | 14 | item 4 | 1376164532
5 | 12 | item 5 | 1376164542
6 | 11 | item 6 | 1376164552
我的目標是獲取每個類別的最新更新時間戳。 結果,我需要這個:
11 = 1376164522 (greatest value for all items with category_id = 11)
12 = 1376164542 (greatest value for all items with category_id = 12)
14 = 1376164532 (greatest value for all items with category_id = 14)
這是我的SQL:
SELECT
`category_id`, `updated_timestamp`
FROM
`my_table`
GROUP BY
`category_id`
ORDER BY
`updated_timestamp`
DESC
但是當我運行它時,結果如下:
11 = 1376164508 (lowest value for all items with category_id = 11)
12 = 1376164512 (greatest value for all items with category_id = 12)
14 = 1376164492 (greatest value for all items with category_id = 14)
換句話說,DESC不起作用。 我做錯了什么?
謝謝!
該查詢允許您獲取表中的所有列。
SELECT a.*
FROM items a
INNER JOIN
(
SELECT category_id, MAX(updated_timestamp) updated_timestamp
FROM items
GROUP BY category_id
) b ON a.category_id = b.category_id AND
a.updated_timestamp = b.updated_timestamp
SELECT *
FROM `my_table` a
WHERE NOT EXISTS (
SELECT 1 FROM `my_table` b
WHERE b.`category_id` = a.`category_id`
AND b.`updated_timestamp` > a.`updated_timestamp`
)
ORDER BY `updated_timestamp`
通過添加MAX(
Updated_timestamp )
嘗試按以下查詢
SELECT
`category_id`, MAX(`updated_timestamp` )
FROM
`Table1`
GROUP BY
`category_id`
ORDER BY
`updated_timestamp`
DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.