Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menggunakan rank(over() dalam sql

Bagaimana untuk menggunakan rank(over() dalam sql

下次还敢
下次还敢asal
2024-05-09 07:42:18713semak imbas

Fungsi RANK() OVER() dalam SQL digunakan untuk menetapkan nilai kedudukan kepada rekod data. Ia menerima klausa ORDER BY yang menyatakan lajur untuk diberi kedudukan mengikut dan susunan isihan. Parameter termasuk: nama lajur (lajur untuk diberi kedudukan), susunan isihan (menaik atau menurun), dan cara nilai NULL dikendalikan (nilai pertama, terakhir, atau hanya bukan NULL). Fungsi ini digunakan untuk menetapkan kedudukan yang sama atau kedudukan unik kepada rekod dengan nilai yang sama, dan boleh mengecualikan atau mengendalikan nilai NULL.

Bagaimana untuk menggunakan rank(over() dalam sql

RANK() OVER() Penggunaan dalam SQL

RANK() OVER() fungsi digunakan dalam SQL untuk menyusun data dan menetapkan nilai kedudukan kepada setiap rekod. Fungsi ini menerima klausa ORDER BY yang menyatakan lajur untuk diberi kedudukan mengikut dan susunan isihan.

Sintaks:

<code>RANK() OVER (ORDER BY 列名 [ASC|DESC] [NULLS FIRST|LAST|ONLY])</code>

Parameter:

  • Nama lajur: Nyatakan lajur untuk mengambil bahagian dalam kedudukan.
  • ASC|DESC: Nyatakan susunan kedudukan (menaik atau menurun).
  • NULLS FIRST|LAST|ONLY: Nyatakan cara mengendalikan nilai NULL.

Penggunaan:

RANK() OVER() fungsi digunakan untuk melaksanakan pelbagai jenis penarafan pada data, termasuk:

  • Menetapkan kedudukan yang sama kepada rekod yang mempunyai nilai yang sama
  • untuk menetapkan dengan berbeza nilai Kedudukan
  • Kecualikan nilai NULL ​​atau letakkan nilai NULL dahulu/terakhir

Contoh:

Contoh berikut menyusun rekod dalam jadual "Pelajar" berdasarkan lajur "Skor", dari tinggi ke rendah :

<code>SELECT *, RANK() OVER (ORDER BY 分数 DESC) AS 排名
FROM 学生;</code>

Keputusan adalah seperti berikut:

2344
Nombor pelajar Nama Skor Kedudukan
1
小华 90 2
Xiaoli 85 3
4

Nota:

  • PERINGKAT( ) OVER() Kembalikan Nilai ranking bermula dari 1, bukan 0.
  • Jika terdapat berbilang rekod dengan nilai yang sama dalam lajur yang anda beri ranking, rekod ini akan diberikan nilai kedudukan yang sama.
  • Untuk nilai NULL, pilihan NULLS FIRST meletakkan nilai NULL terlebih dahulu, pilihan NULLS LAST meletakkan nilai NULL terakhir, dan pilihan NULLS ONLY hanya meletakkan nilai bukan NULL.
🎜

Atas ialah kandungan terperinci Bagaimana untuk menggunakan rank(over() dalam sql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn