У меня есть запрос, который возвращает результаты в следующем порядке структуры по возрастанию нашей_прибыли
SELECT our_price,
mrp,
marketplace_id,
test_id
FROM marketplace_test_mapping mtm
INNER JOIN marketplace m
ON m.id = mtm.marketplace_id
WHERE m.city_id = 1
AND mtm.test_id IN ( 36, 23, 43, 107,
121, 82 )
ORDER BY our_price ASC;
ВЫХОД
our_price | mrp | marketplace_id | test_id
----------+-----+----------------+--------
50 90 3 23
51 70 2 23
52 88 1 23
53 80 3 24
54 90 2 24
55 90 4 23
56 90 1 25
57 90 2 25
58 90 1 24
Я хочу получить минимумцена для каждого test_id, но когда я группирую_by на test_id
, она также сортирует marketplace_id
и возвращает следующее
SELECT *
FROM (SELECT our_price,
mrp,
marketplace_id,
test_id
FROM marketplace_test_mapping mtm
INNER JOIN marketplace m
ON m.id = mtm.marketplace_id
WHERE m.city_id = 1
AND mtm.test_id IN ( 36, 23, 43, 107,
121, 82 )
ORDER BY our_price ASC) AS temp_marketplace_test_mapping
GROUP BY test_id;
Фактический результат
our_price | mrp | marketplace_id | test_id
----------+-----+----------------+--------
52 88 1 23
58 90 1 24
56 90 1 25
Ожидаемый результат
our_price | mrp | marketplace_id | test_id
----------+-----+----------------+--------
50 90 3 23
53 90 3 24
56 90 1 25
Разница в обоих результатах заключается в том, что actual output
также сортирует marketplace_id
при группировании по test_id
.