我是新來的SQL和我試圖讓id每個類別與最新的offer_valid_till。下面是我的資料庫結構。
| ID | 類別ID | offer_valid_till |
|---|---|---|
| 1 | 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 | 2022 年 4 月 12 日星期二 08:55:51 UTC 00:00 |
| 5 | 4 | 空值 |
| 6 | 3 | 2021 年 11 月 16 日星期三 03:18:10 UTC 00:00 |
預期回應:
| 類別ID | ID |
|---|---|
| 1 | 3 |
| 2 | 2 |
| 3 | 4 |
| 4 | 5 |
這是我嘗試過的:
SELECT MAX(offer_valid_till), id
FROM OFFERS
GROUP BY category_id, id
HAVING MAX(offer_valid_till) = offer_valid_till
任何Rails或SQL解決方案都會有很大幫助。謝謝!
uj5u.com熱心網友回復:
使用此代碼:
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 欄位進行編號。然后它從每個類別中提取第一個值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/408970.html
標籤:
上一篇:在shell腳本中使用sed
