Klausa bingkai jendela

Berlaku untuk:centang ditandai ya pemeriksaan Databricks SQL ditandai ya Databricks Runtime

Menentukan subset baris geser dalam partisi tempat fungsi jendela agregat atau analitik beroperasi.

Sintaks

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

Parameter

  • frame_mode

    • BARIS

      Jika ditentukan, bingkai jendela geser dinyatakan dalam hal baris sebelumnya atau mengikuti baris saat ini.

    • BERBAGAI

      Jika ditentukan, fungsi jendela harus menentukan klausa ORDER BY dengan satu ekspresi obExpr.

      Batas jendela geser kemudian dinyatakan sebagai offset dari obExpr untuk baris saat ini.

  • frame_start

    Posisi awal bingkai jendela geser relatif terhadap baris saat ini.

    • SEBELUMNYA TIDAK TERIKAT

      Menentukan bahwa bingkai jendela dimulai di awal partisi.

    • offset_start SEBELUMNYA

      Jika mode adalah ROWS, offset_start adalah angka harfiah integral positif yang menentukan berapa banyak baris sebelum baris saat ini bingkai dimulai.

      Jika mode adalah RANGE, offset_start adalah nilai harfiah positif dari jenis yang dapat dikurangi dari obExpr. Bingkai dimulai pada baris pertama partisi yang obExpr lebih besar atau sama dengan obExpr - offset_start pada baris saat ini.

    • BARIS SAAT INI

      Menentukan bahwa bingkai dimulai pada baris saat ini.

    • offset_start BERIKUT

      Jika mode adalah ROWS, offset_start adalah angka harfiah integral positif yang menentukan berapa banyak baris yang melewati ke baris saat ini bingkai dimulai. Jika mode adalah RANGE, offset_start adalah nilai harfiah positif dari jenis yang dapat ditambahkan ke obExpr. Bingkai dimulai pada baris pertama partisi yang obExpr lebih besar atau sama dengan obExpr + offset_start pada baris saat ini.

  • frame_stop

    Akhir bingkai jendela geser relatif terhadap baris saat ini.

    Jika tidak ditentukan, bingkai berhenti di CURRENT ROW. Akhir jendela geser harus lebih besar dari awal bingkai jendela.

    • offset_start SEBELUMNYA

      Jika frame_mode adalah ROWS, offset_stop adalah angka harfiah integral positif yang menentukan berapa banyak baris sebelum baris saat ini bingkai berhenti. Jika frame_mode adalah RANGE, offset_stop adalah nilai harfiah positif dari jenis yang sama dengan offset_start. Bingkai berakhir pada baris terakhir dari partisi yang obExpr kurang dari atau sama dengan obExpr - offset_stop pada baris saat ini.

    • BARIS SAAT INI

      Menentukan bahwa bingkai berhenti pada baris saat ini.

    • offsetStop FOLLOWING

      Jika frame_mode adalah ROWS, offset_stop adalah angka harfiah integral positif yang menentukan berapa banyak baris yang melewati ke baris saat ini, bingkai berakhir. Jika frame_mode adalah RANGE, offset_stop adalah nilai harfiah positif dari jenis yang sama dengan offset_start. Bingkai berakhir pada baris terakhir partisi yang obExpr kurang dari atau sama dengan obExpr + offset_stop pada baris saat ini.

    • MENGIKUTI TIDAK TERIKAT

      Menentukan bahwa bingkai jendela berhenti di akhir partisi.