Вот очень похожая база данных sqlite, с которой я работаю -
CREATE TABLE sampleData(
pincode INTEGER NOT NULL,
place_id INTEGER NOT NULL,
price INTEGER NOT NULL,
name TEXT NOT NULL,
UNIQUE(pincode, place_id)
);
Я искал названия мест в каждом пин-коде (только 1 место в пин-коде), у которого там самая низкая цена. Самый простой запрос, который я мог придумать -
SELECT * FROM sampleData
WHERE price > 0
GROUP BY pincode
ORDER BY PRICE
, который, кажется, работает в sqlite (?), Но не работает в pg9.6 и дает неправильный результат в Mysql. Вот еще один, который, кажется, дает тот же результат -
SELECT * FROM sampleData
WHERE price > 0
GROUP BY pincode
HAVING MIN(PRICE)
, результаты которого аналогичны последним. Мне было интересно, что не так с этими запросами, и я хотел бы получить помощь в разработке правильного.
SQLFIDDLE