Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zrozumienie różnic między CUBE a ROLLUP

Nie zobaczysz żadnej różnicy, ponieważ zwijasz tylko jedną kolumnę. Rozważ przykład, gdzie robimy

ROLLUP (YEAR, MONTH, DAY)

Z ROLLUP , będzie miał następujące wyjścia:

YEAR, MONTH, DAY
YEAR, MONTH
YEAR
()

Z CUBE , będzie miał następujące wartości:

YEAR, MONTH, DAY
YEAR, MONTH
YEAR, DAY
YEAR
MONTH, DAY
MONTH
DAY
()

CUBE zasadniczo zawiera każdy możliwy scenariusz zbiorczy dla każdego węzła, podczas gdy ROLLUP utrzyma hierarchię w nienaruszonym stanie (więc nie pominie MIESIĄCA i pokaże ROK/DZIEŃ, podczas gdy CUBE będzie)

Dlatego nie zauważyłeś różnicy, ponieważ miałeś tylko jedną kolumnę, którą zwijałeś.

Mam nadzieję, że to pomoże.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wstawić wiele wierszy do tabeli na podstawie zakresu liczb

  2. Użyj COLUMNPROPERTY(), aby zwrócić informacje o kolumnie lub parametrze w SQL Server

  3. Wybierz elementy, takie jak rekordy, z kolumny w innej tabeli

  4. Używanie SELECT SCOPE_IDENTITY() w zestawie rekordów ADODB

  5. Przestawne kolumny dynamiczne, bez agregacji