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

Bagaimana untuk menggunakan rank(over() dalam sql

下次还敢
Lepaskan: 2024-05-09 07:42:18
asal
766 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan