데이터를 집계하고 결과를 여러 필드로 그룹화하고 모두 관련 "소계"순열을 추출하는 쿼리를 실행하려고합니다. (MSSQL의 CUBE()와 유사)여러 부분합 - 필드의 롤업 순서
Group By Rollup()
을 사용하는 경우 Rollup
함수의 Group By
필드의 순서에 따라 순열을 얻습니다. 예를 들어 아래의 쿼리 (공용 데이터 세트에서 실행)는 연도별로 또는 연도와 월별 또는 연도, 월 및 메달리온을 반환하지만 메달리그램은 부분합을 반환하지 않습니다.
SELECT
trip_year,
trip_month,
medallion,
SUM(trip_count) AS Sum_trip_count
FROM
[nyc-tlc:yellow.Trips_ByMonth_ByMedallion]
WHERE
medallion IN ("2R76", "8J82", "3B85", "4L79", "5D59", "6H75", "7P60", "8V48", "1H12", "2C69", "2F38", "5Y86", "5j90", "8A75", "8V41", "9J24", "9J55", "1E13", "1J82")
GROUP BY
ROLLUP(trip_year,
trip_month,
medallion)
내 질문은 : 나는 하나의 쿼리 결과에서 "하위 합계"의 모든 다른 순열을 얻기 위해 무엇을해야 .
이미 시도 : 유사한 쿼리이지만 순서가 다른 조합은 작동하지만 우아하지는 않습니다 (너무 많은 공용체가 필요할 것입니다). 감사합니다.
이 질문에 적절하게 대처할 수 있습니까? – Nicholas
대답은 분명하지만 내 문제는 해결되지 않습니다. 유니온 모두 옵션이 아닙니다. 그것은 n이 필요합니다! 같은 쿼리의 repitions. 그룹화 필드가 9 개이면 기본 설정이 불가능 해집니다. –
나는 이것이 비효율적이고 유지하기가 어렵고 비용이 많이 드는 것에 동의합니다. 그러나 제안한 해결 방법은 현재 단일 쿼리에서 찾는 집계를 가져 오는 ** 유일한 방법입니다. 따라서 기능 요청을 제출하는 것이 좋습니다. 더 명확하게 반영하도록 답변을 업데이트했습니다. – Nicholas