내 임무는 "각 날짜에 대해 얼마나 많은 송장을 적립 했습니까?"CUBE와 ROLLUP의 차이점에 대해 알아보기
나는 약간 붙어서 교수에게 도움을 요청했습니다. 그녀는 나에게 "각 유형과 버전의 스토브가 몇 개나 만들어 졌습니까?"라는 질문에 대한 질문을 이메일로 보냈습니다. 도전 과제가 있지만 추가 점수가없는 경우 총 스토브 개수를 포함하십시오. " 내 요구 사항을 충족 할 때까지
SELECT STOVE.Type + STOVE.Version AS 'Type+Version'
, COUNT(*) AS 'The Count'
FROM STOVE
GROUP BY STOVE.Type + STOVE.Version WITH ROLLUP;
그래서, 나는 그 쿼리를 쥐게 :
이
그녀가 나를 보내신 쿼리이었다. 이것은 내가 생각해 낸 것입니다 :SELECT InvoiceDt
, COUNT(InvoiceNbr) AS 'Number of Invoices'
FROM INVOICE
GROUP BY InvoiceDt WITH ROLLUP
ORDER BY InvoiceDt ASC;
그리고 나는 다음과 같은 결과를 보냈습니다.
어쨌든 ROLLUP 절을 읽고 Microsoft의 기사로 시작했습니다. 그것은 롤업 절은 CUBE 절과 유사이라고 말했지만 그것은 다음과 같은 방법으로 CUBE 절과 구별되었다 :
- CUBE 선택한 열의 값의 모든 조합에 대한 집계를 표시하는 결과 집합을 생성합니다.
- ROLLUP은 선택한 열의 값 계층 구조에 대한 집계를 보여주는 결과 집합을 생성합니다.
그래서 내 쿼리에서 ROLLUP을 CUBE로 대체하여 어떤 일이 발생하는지 확인하기로했습니다. 그들은 같은 결과를 냈다. 나는 그것이 내가 혼란스러워하는 곳이라고 생각한다.
내가 여기있는 쿼리 유형을 사용하는 경우 두 절 사이에 실제적인 차이가 없다고 생각됩니다. 그게 맞습니까? 또는, 나는 무언가를 이해하지 못하고 있는가? Microsoft 기사를 읽었을 때 CUBE 절을 사용하여 내 결과가 달라져야한다고 생각했습니다.
흥미를 얻기 위해 어떤 방법으로 ALL GROUP BY + UNION을 확장합니다. 왜 디자이너가 하나를 고르고 행동 특성에 대한 추가 특성 매개 변수를 추가하지 않았는지 궁금합니다. 근본적으로 같은 일을하지만 약간 다른 것을 구별하는 것은 꽤 어리 석다. – user2326106