programing

수퍼 애그리게이트 행에서 "NULL" 값을 유지하면서 "롤업을 사용한 그룹" 열 이름을 변경하려면 어떻게 합니까?

testmans 2023. 8. 8. 20:06
반응형

수퍼 애그리게이트 행에서 "NULL" 값을 유지하면서 "롤업을 사용한 그룹" 열 이름을 변경하려면 어떻게 합니까?

다음 SQL 문

SELECT MONTH(start_date) month, name, SUM(pins) pins FROM Table
GROUP BY MONTH(start_date), name WITH ROLLUP

다음으로 표시되어야 합니다.

1    jim 10
2    jim 15
3    jim 20
NULL jim 45

대신 다음 출력을 생성합니다.

1 jim 10
2 jim 15
3 jim 20
3 jim 45

MySQL 문서에 따라:

각 수퍼 애그리게이트 행의 NULL 표시기는 행이 클라이언트로 전송될 때 생성됩니다.서버는 값이 변경된 가장 왼쪽에 있는 GROUP BY 절에 명명된 열을 확인합니다.이름과 일치하는 이름을 가진 결과 집합의 열에 대한 값은 NULL로 설정됩니다. 열 위치별로 그룹화 열을 지정하면 서버는 위치별로 NULL로 설정할 열을 식별합니다.

필드의 별칭을 지정한 후 "NULL"을 수퍼 애그리게이트 열에 삽입하면 완료되며, SELECT 필드 목록의 "month" 열 별칭이 "Group BY" 문에 사용된 정확한 문자열과 일치하지 않기 때문에 슈퍼 애그리게이트 행의 "month" 열에 대한 값이 "undefined"로 간주되고 l이 할당됩니다.이상적으로 "NULL"이 아닌 ast 값이 표시됩니다.

저는 이 문제를 해결하고 열 별칭을 만들고 초집계 값 "NULL"을 유지하기 위해 온갖 "꼼수"를 시도했지만 그렇게 할 수 없었습니다.

어떤 생각이나 아이디어라도 환영합니다.

잘 부탁드립니다.

언급URL : https://stackoverflow.com/questions/64583178/how-do-i-rename-a-group-by-with-rollup-column-name-while-maintaining-its-null

반응형