Подтвердить что ты не робот

Как выбрать самую длинную строку из таблицы при группировке

Пример:

SELECT partnumber, manufacturer, condition, SUM(qty), AVG(price), description FROM parts

WHERE [something]

GROUP BY partnumber, manufacturer, condition

У меня есть несколько описаний, которые являются пустыми, и может быть много партовых чисел, изготовителей, значений условий, а в группе кажется, что первое доступное описание доступно, что может быть пустым. Id хотел бы получить самое длинное описание.

Я пробовал это:

MAX(LENGTH(description)) 

однако возвращает число символов в строке. Можно ли делать то, что я пытаюсь сделать в MySQL?

4b9b3361

Ответ 1

Попробуйте ORDER BY LENGTH(description) DESC и используйте LIMIT 1, чтобы получить самый большой.

Ответ 2

ORDER BY LENGTH(description) DESC LIMIT 1

Это отсортирует результаты от самого длинного до кратчайшего и даст первый результат (самый длинный.)

Ответ 3

SELECT   partnumber, manufacturer, `condition`, SUM(qty), AVG(price), description
FROM     parts
WHERE    [something] AND LENGTH(description) = (
           SELECT MAX(LENGTH(description))
           FROM   parts AS p
           WHERE  p.partnumber   = parts.partnumber
              AND p.manufacturer = parts.manufacturer
              AND p.condition    = parts.condition
         )
GROUP BY partnumber, manufacturer, `condition`

Ответ 4

Кажется, я ответил на свой вопрос, MAX (описание), похоже, работает нормально.