У меня есть таблица материал:SQL и группа По запросу
- id: int
- Product: varchar (100)
- Content: text
- price: double
Я хотел бы, чтобы отобразить список материалов с группой по продукции с последней ценой я попытался с:
SELECT * FROM materiel GROUP BY produit ORDER BY id
Но мне представляется группа по продукту с первым призом
13, product1, dell, 25
14, product2, hp, 4
17, product3, acer, 15
запрос без использования группы по
13, product1, dell, 25
14, product2, hp, 4
16, product1, acer, 35
17, product3, acer, 15
Я хотел бы это шоу
14, product2, hp, 4
16, product1, acer, 35
17, product3, acer, 15
Показать нам простые табличные данные. – jarlh
MySQL или MS SQL Server? Не помещайте те продукты, которые не задействованы ... – jarlh
'ORDER BY' запускается после' GROUP BY'. Вот что происходит: вы группируете по продукту, так что вы получаете по одной строке за произведение. Один - продукт; один из них является одним из его содержимого (вы не говорите, какой из них, например 'max (content)'), один из них является одним из его цен, снова произвольно выбранным и один из его идентификаторов. Затем вы сортируете все продукты по выбранным идентификаторам. Что не имеет смысла, как вы можете видеть. Всегда используйте агрегатные функции в столбцах, которые не входят в предложение GROUP BY, если вы не уверены, что делаете. Это может помочь вам установить режим ONLY_FULL_GROUP_BY, пока вы это изучаете. –