sourcecode

mysql 함수 GROUPINT이 존재하지 않습니다.

copyscript 2022. 9. 24. 10:12
반응형

mysql 함수 GROUPINT이 존재하지 않습니다.

사용시WITH ROLLUP다음의 에러가 표시됩니다.

#1305 - FUNTION GROUP이 존재하지 않음

내 DB 버전:

innodb_version  5.7.28
version     10.2.30-MariaDB

이상하다WITH ROLLUP동작하지만 동작하지 않는다GROUPING()null을 교환하고 싶습니다.

감 잡히는 게 없어요?

내 SQL:

SELECT
IF(GROUPING(`Categorie`), 'All Categorie',`Categorie`) AS `Categorie`,
`Grootboek`,
SUM(`Bedrag2020`) AS `Bedrag2020` 
FROM `vw_resultaat_ytd` 
Group by
`Categorie`,
`Grootboek` WITH ROLLUP;

에서 설명한 바와 같이 https://www.mysqltutorial.org/mysql-rollup/

확실히.grouping()는 지원되지 않습니다.~하지 않는 한Categorie수 있습니다.NULL, 그럼 그냥 사용하세요.COALESCE():

SELECT COALESCE(Categorie, 'All Categorie') AS Categorie, 
       Grootboek, SUM(Bedrag2020) AS Bedrag2020
FROM vw_resultaat_ytd 
GROUP BY Categorie, Grootboek WITH ROLLUP;

한다면Categorie수 있습니다.NULL다음으로 값을 무효값으로 치환하여 원래대로 되돌릴 필요가 있습니다.

SELECT (CASE WHEN Categorie IS NULL THEN 'All Categorie'
             WHEN Categorie <> '<NULL>' THEN Categorie
        END)  AS Categorie, 
       Grootboek, SUM(Bedrag2020) AS Bedrag2020
FROM vw_resultaat_ytd 
GROUP BY COALESCE(Categorie, '<NULL>'), Grootboek WITH ROLLUP;

그레이트 고든, 도움이 되네최종적으로 이것이 제가 찾고 있던 최종 솔루션이지만, 저는 충분히 설명하지 않았습니다.

SELECT  Categorie, 
COALESCE(Grootboek, concat('All ', Categorie)) AS Grootboek,
SUM(Bedrag2020) AS Bedrag2020
FROM vw_resultaat_ytd 
GROUP BY Categorie, Grootboek WITH ROLLUP;

언급URL : https://stackoverflow.com/questions/60486191/mysql-function-grouping-does-not-exist

반응형