我正在努力使用PostgreSQL创建一个涉及聚合的SQL查询。考虑以下表:
现在,我想获取每个位置的所有物品记录,其中位置类型为xxx且价格最低。
类似于:
这将列出每个类型为xxx的位置的最低价格,但我如何从thing表中获取这些列的行(或它们的主键)?
CREATE TABLE thing (
id INT NOT NULL PRIMARY KEY,
price NUMERIC(10,2) NOT NULL,
description VARCHAR(255) NOT NULL,
url VARCHAR(255) NOT NULL,
location_id INT NOT NULL REFERENCES location(id)
)
CREATE TABLE location (
id INT NOT NULL PRIMARY KEY,
type INT NOT NULL,
name VARCHAR(255) NOT NULL
)
现在,我想获取每个位置的所有物品记录,其中位置类型为xxx且价格最低。
类似于:
SELECT min(price) FROM thing
INNER JOIN location ON (thing.location_id = location.id)
WHERE type = xxx
GROUP BY location_id
这将列出每个类型为xxx的位置的最低价格,但我如何从thing表中获取这些列的行(或它们的主键)?