У меня есть следующие данные:PostgreSQL выбрать максимум из строк
CREATE TABLE offer (
id INTEGER,
product_id VARCHAR,
created_at TIMESTAMP,
amount INTEGER,
PRIMARY KEY (id));
INSERT INTO offer (id, product_id, created_at, amount)
VALUES
(1, '123', '2016-03-12', 990),
(2, '136', '2016-02-01', 1056),
(3, '111', '2016-01-01', 1000),
(4, '123', '2016-01-02', 500);
И я хотел бы получить строки с наибольшим количеством в product_id. Если взять эти предыдущие строки, я хотел бы получить идентификаторы: 2, 3 и 1, поскольку строка 1 содержит большее количество, чем строки 4.
id | product_id | created_at | amount
----+------------+---------------------+--------
2 | 136 | 2016-02-01 00:00:00 | 1056
3 | 111 | 2016-01-01 00:00:00 | 1000
1 | 123 | 2016-03-12 00:00:00 | 990
Я пытался что-то подобное, но я не уверен в этом :
SELECT id, product_id, created_at, amount
FROM offer
ORDER BY 4, 2 DESC, 1, 3
И еще я не могу попробовать.
Я подозреваю, что вы имеете в виду 'ORDER BY', а не' GROUP BY'. –
@JoachimIsaksson. , , Спасибо. –