Member 13625789 Ответов: 1

Как мне снова сгруппировать мой результат SQL


Эй,
Интересно, как я могу сгруппировать этот результат sql по другому столбцу:

SELECT * FROM `feed` where `sku` = '12356' and `id` IN ( SELECT MAX(id) FROM `feed` where `sku` = '12356' GROUP BY `coupon` ) ORDER BY `feed`.`id` DESC LIMIT 5

Этот sql-запрос дает мне некоторые результаты, и я хочу сгруппировать этот результат с помощью столбца "информация". Когда я пытаюсь написать group by info, это не группа из этих результатов... Не знаю, как мне это сделать..

Что я получаю от этого sql запроса:

ID | Sku | купон | информация

22 12356 abcf yes9
19 12356 abc yes9
16 12356 gsf no0
12 12356 sds yes2
9 12356 sds yes2

Что я хочу, так это получить эту группу результатов по "информации", например:

ID | Sku | купон | информация

22 12356 abcf yes9
16 12356 gsf no0
12 12356 sds yes2

Надеюсь, все ясно..
Спасибо

Что я уже пробовал:

я перепробовал все что знал и нашел в гугле

1 Ответов

Рейтинг:
2

OriginalGriff

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

yes9    abcf, abc
noO     gsf
yes2    sds, sds
Итак, какое значение должен выбрать SQL? Он не "знает", чего вы хотите, поэтому вам нужно сделать что-то немного более сложное.

SELECT x.ID, Sku, Coupon, Info FROM MyTable m
JOIN (SELECT MAX(ID) AS ID FROM MyTable GROUP BY Info ) x ON x.ID = m.ID
Будет ли это сделано с данными, которые вы предоставляете, но будет ли это работать в "реальном мире"? Зависит от ваших данных...