我是 SQL 新手,我正在尝试获取 id
对于每个类别,最新的 offer_valid_till
。下面是我的数据库结构。
预期响应:
这是我尝试过的:
SELECT MAX(offer_valid_till), id
FROM OFFERS
GROUP BY category_id, id
HAVING MAX(offer_valid_till) = offer_valid_till
任何Rails或SQL解决方案都会有很大帮助。谢谢!
最佳答案
使用此代码:
select category_id,id from (
SELECT *
,ROW_NUMBER() over (partition by category_id order by offer_valid_till desc ) as rn
FROM OFFERS)a
where rn=1
此查询集按顺序对 Offer_valid_till 字段进行编号。然后它从每个类别中提取第一个值。
关于sql - 使用 Rails 或 SQL 获取每个类别的最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70676994/