MySQL의 목록 생성을 위한 집계 함수(Oracle의 LISTAGG와 유사)
MySQL에서 집계 함수를 처리할 때 일반적인 요구 사항은 다음과 같습니다. 함께 그룹화된 값 목록을 반환합니다. Oracle에서는 LISTAGG 함수가 이러한 목적을 효과적으로 수행합니다. MySQL은 유사한 결과를 달성하는 대체 솔루션을 제공합니다.
문제 이해
당면 작업에는 MySQL에 저장된 데이터에서 문자열 목록을 생성하는 함수를 만드는 것이 포함됩니다. 테이블. 각 문자열은 쉼표로 구분되어야 합니다. 예를 들어, 테이블에 다음 데이터가 포함되어 있는 경우:
Id | MyString |
---|---|
1 | First |
2 | Second |
3 | Third |
4 | Fourth |
Oracle의 LISTAGG 함수와 유사한 원하는 출력은 4보다 작은 ID를 필터링할 때 다음과 같습니다.
myList |
---|
First, Second, Third |
해결책: GROUP_CONCAT()
MySQL은 다음을 제공합니다. 여러 값을 단일 문자열로 결합하는 강력한 도구인 GROUP_CONCAT() 집계 함수. 구문은 간단합니다.
GROUP_CONCAT(MyString SEPARATOR ', ') AS myList
지정된 필터링 기준이 있는 테이블에 이 함수를 적용하면 원하는 문자열 목록을 쉽게 얻을 수 있습니다.
예를 들어 다음 쿼리는 다음과 같습니다. 4보다 작은 ID에 대해 쉼표로 구분된 MyString 값 목록 생성:
SELECT GROUP_CONCAT(MyString SEPARATOR ', ') AS myList FROM table WHERE id < 4
추가 다양성
GROUP_CONCAT() 함수는 다른 기준에 따라 결과를 그룹화함으로써 더욱 다양한 가능성을 제공합니다. 예를 들어, 범주 필드와 같은 다른 열을 기준으로 결과를 그룹화하도록 쿼리를 수정할 수 있습니다.
SELECT category, GROUP_CONCAT(MyString SEPARATOR ', ') AS myList FROM table GROUP BY category
이 향상된 기능을 사용하면 더욱 복잡하고 맞춤화된 목록 생성 시나리오를 만들 수 있습니다. MySQL은 GROUP_CONCAT() 함수를 활용하여 Oracle의 LISTAGG 기능과 비교할 수 있는 강력한 집계 및 목록 생성 솔루션을 제공합니다.
위 내용은 Oracle의 LISTAGG처럼 MySQL에서 쉼표로 구분된 문자열 목록을 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!