찾다

 >  Q&A  >  본문

Null이 아닌 값의 조합을 사용하여 MySQL 행을 그룹화하는 방법

그룹화된 결과에서 각 열의 최신 null이 아닌 값을 선택하여 행을 병합/결합하는 방법은 무엇입니까?

id 사용자 과일 숫자 제작시간
1 제인 애플 비어있음 2022-01-01
2 수박 32 2022-01-02
3 비어있음 72 2022-01-03
4 비어있음 2022-01-04

다음 방법은 작동하지 않습니다:

으아악

다음 결과가 나왔으면 좋겠습니다:

으아악

문제는 COALESCE() 함수가 값 세트에서는 작동하지 않고 목록에서만 작동한다는 것입니다.

COALESCE() 대신 MIN() 또는 MAX()를 솔루션으로 사용하여 언급된 많은 주제가 있습니다. 하지만 최저값이나 최고값이 아닌 이전 값을 덮어쓰려면 새 값이 필요하기 때문에 문제가 해결되지 않습니다.

P粉002023326P粉002023326448일 전592

모든 응답(1)나는 대답할 것이다

  • P粉979586159

    P粉9795861592023-09-07 20:00:18

    COALESCE()은 집계 함수가 아니지만 지정된 값 목록에서만 작동할 수 있으므로 이 게시물에서 @jsowa의 해결 방법을 찾았습니다. 왜 "COALESCE"가 "GROUP BY"와 작동하지 않습니까?

    대신 SUBSTRING_INDEX(GROUP_CONCAT())을 사용할 수 있습니다 SUBSTRING_INDEX(GROUP_CONCAT())来替代COALESCE().

    GROUP_CONCAT()의 ORDER BY 절에 특히 주의하세요. 단점은 어떤 값에서든 구분 기호가 사용되지 않는 문자여야 한다는 것입니다.

    으아악

    결과 반환

    으아악

    회신하다
    0
  • 취소회신하다