我有一個PostgreSQL表。如何獲得每個不同列表的最新結果?
我可以得到不同的產品和品牌:
SELECT DISTINCT product, brand FROM list
和之後在Django我得到的最新價格:
對於x查詢:
SELECT price FROM list
WHERE product = x.product AND brand = x.brand
ORDER BY ...
LIMIT 1
我怎樣才能得到所有這一切由一個查詢?
我有一個PostgreSQL表。如何獲得每個不同列表的最新結果?
我可以得到不同的產品和品牌:
SELECT DISTINCT product, brand FROM list
和之後在Django我得到的最新價格:
對於x查詢:
SELECT price FROM list
WHERE product = x.product AND brand = x.brand
ORDER BY ...
LIMIT 1
我怎樣才能得到所有這一切由一個查詢?
SELECT DISTINCT product, brand, FIRST_VALUE(price) OVER (PARTITION BY product, brand ORDER BY ...) AS latest_price
FROM list
奇怪,但它的工作速度比主題中的代碼慢(第一:不同,然後在一個循環中有很多小的查詢) – themis
@themis如果可能,請嘗試在「產品」和「品牌」之間添加複合索引 –
添加一些示例表數據,其預期的結果。 (以及格式化文本。) – jarlh
你想在ORM中做到這一點? –
我想要它在SQL或ORM中,現在沒關係,我只需要想法。 – themis