代码之家  ›  专栏  ›  技术社区  ›  Pugazh

使用Rails或SQL获取每个类别的最新记录

  •  1
  • Pugazh  · 技术社区  · 4 年前

    我对SQL&我在试着得到答案 id 每人 类别 最新的 offer_valid_till .下面是我的数据库结构。

    身份证件 类别识别码 报盘有效期至
    1. 无效的
    2. 2. 2023年9月23日星期六06:47:07 UTC+00:00
    3. 1. 2022年6月12日星期日09:55:53 UTC+00:00
    4. 3.
    5. 4.
    6. 3. 星期三,2021年11月16日03:18:10 UTC+00

    预期答复:

    类别识别码
    1. 3.
    2. 2.
    4.
    4. 5.

    以下是我尝试过的:

    SELECT MAX(offer_valid_till), id
    FROM OFFERS
    GROUP BY category_id, id
    HAVING MAX(offer_valid_till) = offer_valid_till
    

    任何 轨道 SQL 解决方案将是一个很大的帮助。谢谢

    1 回复  |  直到 4 年前
        1
  •  1
  •   Saeed EmamYari    4 年前

    使用此代码:

    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\u valid\u till字段进行编号。然后从每个类别中提取第一个值。