Nice programing

그룹화 할 때 테이블에서 가장 긴 '문자열'을 선택하는 방법

nicepro 2020. 10. 11. 11:21
반응형

그룹화 할 때 테이블에서 가장 긴 '문자열'을 선택하는 방법


예:

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

WHERE [something]

GROUP BY partnumber, manufacturer, condition

비어있는 설명이 몇 개 있고 부품 번호, 제조업체, 조건 값이 많을 수 있으며 그룹에서 사용 가능한 첫 번째 설명을 사용하는 것 같습니다. 사용 가능한 가장 긴 설명을 받고 싶습니다.

나는 이것을 시도했다 :

MAX(LENGTH(description)) 

그러나 그것은 문자열의 문자 수를 반환합니다. 내가 MySQL에서하려는 일을 할 수 있습니까?


가장 큰 것을 얻기 위해 ORDER BY LENGTH(description) DESC사용 하십시오 LIMIT 1.


ORDER BY LENGTH(description) DESC LIMIT 1

가장 긴 결과에서 가장 짧은 결과로 정렬하고 첫 번째 결과 (가장 긴)를 제공합니다.


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 (설명)가 잘 작동하는 것 같습니다.


MAX (LENGTH (description))는 Description 열에서 가장 긴 값의 길이를 반환합니다.

참고 URL : https://stackoverflow.com/questions/10882679/how-do-i-select-the-longest-string-from-a-table-when-grouping

반응형