分组时,如何从表中select最长的“string”
例:
SELECT partnumber, manufacturer, condition, SUM(qty), AVG(price), description FROM parts WHERE [something] GROUP BY partnumber, manufacturer, condition
我有一些空白的描述,可能有很多partnumber,制造商,条件值,并在该组似乎采取第一个描述可用,可以是空白的。 我喜欢得到最长的描述。
我试过这个:
MAX(LENGTH(description))
但是,它返回string中的字符数。 是否有可能做什么即时尝试在MySQL中做?
尝试ORDER BY LENGTH(description) DESC
并使用LIMIT 1
仅获得最大值。
ORDER BY LENGTH(description) DESC LIMIT 1
这将从最长到最短的结果sorting,并给出第一个结果(最长)。
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`
看来我回答了我自己的问题,MAX(说明)似乎工作得很好。