gpt4 book ai didi

mysql - 如何通过群组获取最近的记录

转载 作者:行者123 更新时间:2023-12-04 09:04:20 25 4
gpt4 key购买 nike

我在按类别进行分组时如何获得最新的产品标题?
例如,假设这是我的产品表:

id | title | catID | timestamp
1 | apple | 1 | 2020-07-13 08:21:47
2 | pear | 1 | 2020-07-14 08:21:47
3 | kiwi | 1 | 2020-07-15 08:21:47
我想要一个查询来给我总产品和最后添加的产品。这是一个有点贪婪的查询,并使它变得更加困难,但我认为我可以通过 group by 来做到这一点。如果可能的话,我真的更愿意保留这所有的一个查询。我担心我需要添加一个子查询。
SELECT
p.catID
, COUNT(p.id) as items
, MAX(p.id) as last_added_id
, CASE WHEN p.id = MAX(p.id) THEN p.title
FROM products p
WHERE p.catID = 1
GROUP BY p.catID
问题是,我的标题为空。

最佳答案

我实际上想不出不使用子查询的方法来做到这一点。假设您使用的是 MySQL 8+,我们可以在这里使用窗口函数:

SELECT id, title, catID, timestamp, cnt
FROM
(
SELECT *, COUNT(*) OVER () AS cnt
FROM products
WHERE catID = 1
) t
ORDER BY timestamp DESC
LIMIT 1;

关于mysql - 如何通过群组获取最近的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63488023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com