Klauzula ramowa okna

Dotyczy:sprawdź oznaczone jako tak Zaznaczone pole wyboru SQL usługi Databricks oznaczone jako tak Databricks Runtime

Określa przesuwany podzbiór wierszy w partycji, na której działa funkcja agregacji lub okna analitycznego.

Składni

{ 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 }

Parametry

  • frame_mode

    • WIERSZY

      Jeśli zostanie określona, ramka okna przewijania jest wyrażona w wierszach poprzedzających lub następujących po bieżącym wierszu.

    • ZAKRES

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

      Granice okna przesuwnego są następnie wyrażane jako przesunięcie od obExpr bieżącego wiersza.

  • frame_start

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

    • NIEZWIĄZANE POPRZEDNIE

      Określa, że ramka okna rozpoczyna się na początku partycji.

    • 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 uruchamianym przez ramkę.

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

    • BIEŻĄCY WIERSZ

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

    • 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, na których uruchamia się ramka. Jeśli tryb to RANGE, offset_start jest dodatnią wartością literału typu, który można dodać do klasy obExpr. Ramka rozpoczyna się w pierwszym wierszu partycji, dla którego obExpr wartość jest większa lub równa obExpr + offset_start w bieżącym wierszu.

  • frame_stop

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

    Jeśli nie zostanie określony, ramka zatrzymuje się w bieżącym wierszu. Koniec okna przesuwnego musi być większy niż początek okna.

    • 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, który zatrzymuje 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 partycją, dla której obExpr wartość 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 FOLLOWING

      Jeśli frame_mode to ROWS, offset_stop jest dodatnią liczbą literału całkowitego definiującą liczbę wierszy przeszłości do bieżącego wiersza, które kończy 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 partycji, dla której obExpr wartość jest mniejsza lub równa obExpr + offset_stop w bieżącym wierszu.

    • NIEZWIĄZANE Z NASTĘPUJĄCYMI

      Określa, że ramka okna zatrzymuje się na końcu partycji.