설문조사
PostgreSQL/PPAS 관련 듣고 싶은 교육은


총 게시물 187건, 최근 0 건
   

rollup 질문입니다.

글쓴이 : 타바고 날짜 : 2014-12-16 (화) 21:16 조회 : 10459
안녕하세요 질문 있습니다.

 SELECT name, place, SUM(count) FROM cars GROUP BY ROLLUP(name, place);

계속 rollup 할때 에라가 발생하는데 어떤에라인지 궁금합니다.

ERROR:  function rollup(text, text) does not exist
LINE 1: ...SELECT name, place, SUM(count) FROM cars GROUP BY ROLLUP(nam...
                                                            ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
********** Error **********

ERROR: function rollup(text, text) does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Character: 53

처음부터 2014-12-16 (화) 23:44
ROLLUP 함수 대신에, GROUPING SETS를 사용해 보세요.
GROUP BY GROUPING SETS( (name, place), name, () )
댓글주소
kljjjlkjlkjlkjl… 2014-12-17 (수) 11:14
GROUP BY GROUPING SETS( (name, place), name, () )
GROUP BY CUBE(name, place);
통계함수전부 안되는군요
상용제품만 지원하는지..아니면 설치할때 통계함수 사용여부를 체크같은것을 해야하는지요..
윽..결국 더미테이블 이용해서 통계를 해야하나.
댓글주소
처음부터 2014-12-17 (수) 13:20
음. 상용만 되는게 맞네요. Community에서는 개인이 작성한 Patch가 있긴 합니다만. 비추이고
간단하게, CTE(WITH)와 UNION ALL 을 활용해서 동일한 효과를 내는 편이 좋겠습니다.
위와 같은 경우,

WITH T AS (
SELECT name, place, sum FROM cars WHERE ... )
SELECT NAME, PLACE, SUM(count) FROM T GROUP BY NAME, PLACE
UNION ALL
SELECT NAME, '', SUM(count) FROM T GROUP BY NAME
UNION ALL
SELECT '', '', SUM(count) FROM T

로 ROLLUP 을 구하실 수 있습니다.
댓글주소
   

postgresdba.com