CodeBlanks Logo Icon CodeBlanks

ROW_NUMBER

Her satıra sıra numarası vermeyi öğrenirsin.

ROW_NUMBER

ROW_NUMBER() her satıra benzersiz bir sıra numarası verir. 1'den başlar.

SELECT name,
  ROW_NUMBER() OVER (ORDER BY id) AS rn
FROM products;

Bu sorgu her satıra 1, 2, 3... verir.

products kaynağından name, ROW_NUMBER() OVER (ORDER BY id) AS rn seçilir. ROW_NUMBER() bir pencere fonksiyonudur: satırları daraltmadan, OVER (…) içinde tanımlanan pencereye göre her satır için ayrı değer hesaplar.

ROW_NUMBER — ayrıntı

ROW_NUMBER eşitlikte bile farklı numara verir. RANK ve DENSE_RANK eşitlikte aynı numara verir.

Bu yüzden sayfalama veya her gruptan tek satır seçmek gibi işlerde ROW_NUMBER kullanılır; sıralamada eşitlik önemliyse RANK ya da DENSE_RANK tercih edilir.

Uygulama ROW_NUMBER

Her ürüne ROW_NUMBER() OVER (ORDER BY id) ile sıra numarası ver.

Başlangıç kodu

query.sql
-- sıra numarası
SELECT name,
  ROW_NUMBER()

Örnek çözüm

query.sql
SELECT name,
  ROW_NUMBER() OVER (ORDER BY id) AS rn
FROM products;

Beklenen çıktı

name    rn
Kalem   1
Defter  2

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 ROW_NUMBER ekle

Soru
SELECT name,
  ____() OVER (ORDER BY id) AS rn
FROM products;
Cevap
SELECT name,
  ROW_NUMBER() OVER (ORDER BY id) AS rn
FROM products;

Açıklama: ROW_NUMBER doğru cevap.

2 ROW_NUMBER eşitlikte ne yapar?

  • Aynı numara
  • Farklı numara Doğru cevap
  • Atlar
  • Hata

Açıklama: ROW_NUMBER eşitlikte farklı numara verir.

3 ROW_NUMBER: kavramları eşleştir

Kavram Anlamı
ROW_NUMBER sıra no
benzersiz tekil
1'den başlar ardışık
eşitlik farklı

İleri seviye bölümündeki tüm dersler