Udostępnij za pośrednictwem


Window, klauzula frame

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Określa przesuwany podzestaw wierszy w partition, na którym działa funkcja agregacji lub analizy window.

Składnia

{ frame_mode frame_start |
  frame_mode BETWEEN frame_start AND frame_end } }

frame_mode
{ RANGE | ROWS }

frame_start
{ UNBOUNDED PRECEDING |
  offset_start PRECEDING |
  CURRENT ROW |
  offset_start FOLLOWING }

frame_end
{ offset_stop PRECEDING |
  CURRENT ROW |
  offset_stop FOLLOWING |
  UNBOUNDED FOLLOWING }

Parameters

  • frame_mode

    • WIERSZE

      Jeśli zostanie określona, ramka przesuwana window jest wyrażona w stosunku do wierszy poprzedzających lub następujących po bieżącym wierszu.

    • ZAKRES

      Jeśli zostanie określona, funkcja window musi określić klauzulę ORDER BY z pojedynczym wyrażeniem obExpr.

      Granice przesuwanych window są następnie wyrażane jako offset z obExpr dla bieżącego wiersza.

  • frame_start

    Pozycja początkowa przesuwanej ramki window względem bieżącego wiersza.

    • NIEZWIĄZANE POPRZEDNIE

      Określa, że ramka window rozpoczyna się od początku partition.

    • offset_start POPRZEDNIE

      Jeśli tryb to ROWS, offset_start jest dodatnią liczbą literału całkowitego definiującą liczbę wierszy przed bieżącym wierszem, który rozpoczyna ramka.

      Jeśli tryb to RANGE, offset_start jest dodatnią wartością literału typu, który można odjąć od obExprklasy . Ramka rozpoczyna się od pierwszego wiersza partition, dla którego obExpr w bieżącym wierszu jest większe lub równe obExpr - offset_start.

    • BIEŻĄCY WIERSZ

      Określa, że ramka rozpoczyna się od bieżącego wiersza.

    • offset_start NASTĘPUJĄCE

      Jeśli tryb to ROWS, offset_start jest dodatnią liczbą literału całkowitego definiującą liczbę wierszy przeszłości do bieżącego wiersza uruchamianej ramki. Jeśli tryb to RANGE, offset_start jest dodatnią wartością literału typu, który można dodać do obExprklasy . Ramka rozpoczyna się od pierwszego wiersza partition, dla którego obExpr jest większe lub równe obExpr + offset_start w bieżącym wierszu.

  • frame_stop

    Koniec przesuwanej ramki window względem bieżącego wiersza.

    Jeśli nie zostanie określona, ramka zostanie zatrzymana w bieżącym wierszu. Koniec przesuwanej window musi być większy niż początek ramki window.

    • offset_start POPRZEDNIE

      Jeśli frame_mode to ROWS, offset_stop jest dodatnią liczbą literału całkowitego definiującą liczbę wierszy przed bieżącym wierszem zatrzymana ramka. Jeśli frame_mode to RANGE, offset_stop jest dodatnią wartością literału tego samego typu co offset_start. Ramka kończy się ostatnim wierszem poza partition, dla którego obExpr jest mniejsza lub równa obExpr - offset_stop w bieżącym wierszu.

    • BIEŻĄCY WIERSZ

      Określa, że ramka zatrzymuje się w bieżącym wierszu.

    • offsetStop PO

      Jeśli frame_mode to ROWS, offset_stop jest dodatnią liczbą literału całkowitego definiującą liczbę wierszy wklejanych do bieżącego wiersza, na których kończy się ramka. Jeśli frame_mode to RANGE, offset_stop jest dodatnią wartością literału tego samego typu co offset_start. Ramka kończy się na ostatnim wierszu partition, dla którego obExpr jest mniejszy lub równy obExpr + offset_stop w bieżącym wierszu.

    • NIEZWIĄZANE Z NASTĘPUJĄCYMI

      Określa, że ramka window zatrzymuje się na końcu partition.