MySQL Order By X, затем Group By Y, затем Arrange Z в алфавитном порядке. - PullRequest
0 голосов
/ 30 апреля 2018

Я бы хотел 1) Сортировать по цене ASC (показать дешевле), затем 2) Группировать по названию товара, затем 3) Сортировать по алфавиту по названию товара.

Здесь 2 столбца (будут включены только 2 соответствующих столбца, есть другие столбцы, такие как модель, цвет и т. Д.) enter image description here

Результаты, которые я хочу:

enter image description here

Спасибо

1 Ответ

0 голосов
/ 30 апреля 2018
SELECT Item, Min(Price), Other_Columns FROM table GROUP BY Item ORDER BY Item

Если вы хотите, чтобы идентификатор, цвет и модель принадлежали минимальной цене, все становится сложнее. Вы можете использовать что-то вроде:

SELECT * FROM `table` WHERE id IN 
    (SELECT MIN(id) FROM `table` T1 WHERE Price=
        (SELECT MIN(Price) FROM `table` T2 WHERE T1.Item=T2.Item) 
     GROUP BY Item, Price)

По сути, вы делаете следующее: сначала установите минимальную цену за единицу. Чем найти все первые идентификаторы из каждого предмета с этой ценой. Затем выберите все столбцы из всех записей с этими идентификаторами. Возможно, это можно сделать проще, но это проще всего понять.

Я не уверен, что это именно то, что вам нужно, поскольку ваш вопрос не был очень конкретным / понятным (отсюда и все отрицательные голоса). Но я как бы пришел к выводу, что это так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...