我有一个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