SELECT selected_date, id, price1, price2
from values
WHERE id = 100
order by 1 desc
LIMIT 90
我正在為每個 id 從表中獲取前 90 個值。
如果我想在一個查詢中獲取多個 ID 和每個 ID 的前 90 個專案,我該如何撰寫查詢?
此查詢僅為第一個 id 提供 90 個專案。理想情況下,我希望每個 id 有 90 90=180 個專案。這個怎么弄??
SELECT selected_date, id, price1, price2
from values
WHERE id IN (100, 101)
order by 1 desc
LIMIT 90
This is giving me only 90 items from the first id.
version of MySQL: 8.0
uj5u.com熱心網友回復:
如果您的 MySql 版本支持視窗函式,您可以嘗試以下方法
with t as (
select selected_date, id, price1, price2,
Row_Number() over(partition by id order by selected_date desc) rn
from values
where id in (100, 101)
)
select selected_date, id, price1, price2
from t
where rn <= 90;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/409823.html
標籤:
上一篇:使用回圈和前綴更新表中的所有行
