Udostępnij za pośrednictwem


Grupowanie zestawów odpowiedniki

klauzula GROUP BY, który używa grupowanie zestawów można generować equvalent zestaw wyników do wygenerowany przez kilka prostych Grupuj według klauzul wszystkich Unii.Grupowanie zestawów można generować wyniku równoważne wygenerowany przez prostą czynność Grupuj według, pakietu ZBIORCZEGO lub modułu.Różne kombinacje grupowanie zestawów, pakietu ZBIORCZEGO lub modułu można wygenerować zestawy wyników równoważne.

W tym temacie przedstawiono przykłady grupowanie zestawów odpowiedniki.W przykładach są używane następujące skróty:

  • Agg(): wszelkie agregacjifunkcja

  • (całkowity): argument

Grupowanie zestawów równoważne UNION ALL

Określanie grupowanie zestawów (<grupowania zestaw>,...n ]) Grupuj według listy jest równoważne Unii wszystkich kwerend, z jednego z zestawów grupowanie jako listy Grupuj według.Agregatów na liczbach zmiennoprzecinkowych może zwrócić wyniki nieco inne.

Poniższe instrukcje są równoważne:

SELECT customer, year, SUM(sales)
FROM T
GROUP BY GROUPING SETS ((customer), (year))
SELECT customer, NULL as year, SUM(sales)
FROM T 
GROUP BY customer
UNION ALL
SELECT NULL as customer, year, SUM(sales)
FROM T 
GROUP BY year

Grupowanie zestawów odpowiedniki według grupy proste

Następujące klauzule zwrotu tej samej sumy:

GROUP BY GROUPING SETS ( () )
GROUP BY ()

Następujące klauzule zwrócić ten sam zestaw pojedynczego:

GROUP BY GROUPING SETS ( (C1, C2, ..., Cn) )
GROUP BY C1, C2, ..., Cn

Grupowanie zestawów ZBIORCZEGO odpowiedniki

GRUPY przez pakiet ZBIORCZY (<Lista elementów kompozytowych>) z n wymiarów na liście wejściowej jest równoważne z wszystkich prefiksów grupowanie zestawów (n+ 1) jego wprowadzania listy jako jego zestawy GRUPOWANIA.

Następujące klauzule są równoważne:

GROUP BY ROLLUP (C1, C2, …, Cn-1, Cn)
GROUP BY GROUPING SETS ( (C1, C2, …, Cn-1, Cn)
    ,(C1, C2, ..., Cn-1)
    ...
    ,(C1, C2)
    ,(C1)
    ,() )

Grupowanie zestawów modułów odpowiedniki

GRUPY przez moduł (<Lista elementów kompozytowych>) z n wymiarów na liście wejściowej jest równoważne grupowanie zestawów z pełnego zestaw (2n Kombinacje wymiarów na liście wejściowej) jego wprowadzania listy jako jego zestawy GRUPOWANIA.

Następujące klauzule są równoważne:

GROUP BY CUBE (C1, C2, C3, ..., Cn-2, Cn-1, Cn)
GROUP BY GROUPING SETS (
     (C1, C2, C3, ..., Cn-2, Cn-1, Cn) -- All dimensions are included.
    ,( , C2, C3, ..., Cn-2, Cn-1, Cn) -- n-1 dimensions are included.
    ,(C1, C3, ..., Cn-2, Cn-1, Cn)
    …
    ,(C1, C2, C3, ..., Cn-2, Cn-1,)
    ,(C3, ..., Cn-2, Cn-1, Cn) -- n-2 dimensions included
    ,(C1  ..., Cn-2, Cn-1, Cn)
    …
    ,(C1, C2) -- 2 dimensions are included.
    ,…
    ,(C1, Cn)
    ,…
    ,(Cn-1, Cn)
    ,…
    ,(C1) -- 1 dimension included
    ,(C2)
    ,…
    ,(Cn-1)
    ,(Cn)
    ,() ) -- Grand total, 0 dimension is included.

Następujące klauzule są równoważne:

GROUP BY CUBE (C1, C2, C3)
GROUP BY GROUPING SETS ( (C1, C2, C3)
    ,(C1, C2)
    ,(C1, C3)
    ,(C2, C3)
    ,(C1)
    ,(C2)
    ,(C3)
    ,() )

Złożony kolumn w tym zestaw grupowania wewnątrz pakiet ZBIORCZY pakiet ZBIORCZY

Następujące klauzule są równoważne:

ROLLUP(A, (C1, C2, ..., Cn) )
ROLLUP( (A), (C1, C2, ..., Cn) )
GROUPING SETS ( (A, C1, C2, ..., Cn), (A), () )

Kolumny złożony zestaw grupowania wewnątrz modułu modułu

Następujące klauzule są równoważne:

CUBE(A, (C1, C2, ..., Cn) )
CUBE( (A), (C1, C2, ..., Cn) )
GROUPING SETS ( (), (A), (C1, C2, ..., Cn), (A, C1, C2, ..., Cn) )

WEDŁUG grupy, zawierający zestawy GRUPOWANIA, pakietu ZBIORCZEGO lub modułu

Następujące klauzule są równoważne:

GROUP BY A, CUBE (B, C)
GROUP BY GROUPING SETS ( (A), (A, B), (A, C), (A, B, C ))

Następujące klauzule są równoważne:

GROUP BY A, GROUPING SETS ( (B), (C) )
GROUP BY GROUPING SETS ( (A, B), (A, C) )

Następujące klauzule są równoważne:

GROUP BY ROLLUP (A, B), ROLLUP(C, D)
GROUP BY GROUPING SETS
    ( (),(C),(C,D),(A),(A,C),(A,C,D),(A,B),(A,B,C),(A,B,C,D) )

Pakiet ZBIORCZY uwzględnione na liście zestawów GRUPOWANIA

Następujące klauzule są równoważne:

GROUP BY GROUPING SETS ( (A), ROLLUP (B, C) )
GROUP BY GROUPING SETS ( (A), (B,C), (B), () )

Pakiet zbiorczy aktualizacji zawartych wewnątrz zestawu grupowania

Następujące klauzule są równoważne:

GROUP BY GROUPING SETS(A, (B, ROLLUP(C, D)) )
GROUP BY GROUPING SETS (A, B, (B,C), (B, C, D) () )