Bahasa SQL‎ > ‎

Penomoran Baris atau Row Number di MySQL

Salah satu kelemahan SQL adalah tidak mengenal "sistem koordinat" dimana :
  • kita tahu saat ini kita di posisi baris dan kolom mana, dan...
  • kita dapat mengacu ke baris dan kolom lain dari posisi saat ini, misalkan 3 baris di atas dan 2 kolom ke kanan.
Kedua sifat di atas sangat penting untuk menghasilkan dataset yang bersifat analisis. 

Masih bingung ? Bisa baca artikel saya yang membahas hal ini : "Analisis, kenapa Spreadsheet dan bukan query SQL ?"

Namun untuk penomoran baris di MySQL kita memiliki solusi dengan trik penggunaan variable. Berikut adalah contoh penggunaannya :

Penomoran Baris dengan Variable


SELECT
 @nomorbaris:=@nomorbaris+1 AS nomorbaris, 
       e1.Start_Date 
FROM exchange_rate e1, (SELECT @nomorbaris := 0) T;


dan penggunaan lebih lanjut

Penggunaan pada Subquery

SELECT T1.Currency1, T1.Currency2, T1.Start_Date, T2.Start_Date AS End_Date, T1.Rate FROM
(
    SELECT Currency1, Currency2, @nomorbaris1:=@nomorbaris1+1 AS nomorbaris, 
           e1.Start_Date, Rate
    FROM exchange_rate e1, (SELECT @nomorbaris1 := 1) T
) T1 
JOIN
(
    SELECT @nomorbaris2:=@nomorbaris2+1 AS nomorbaris, 
           e1.Start_Date 
    FROM exchange_rate e1, (SELECT @nomorbaris2 := 0) T
) T2
ON T1.nomorbaris = T2.nomorbaris


Gampang bukan ?  Nah, buat Anda yang mungkin masih baru dengan penggunaan variable di MySQL dapat melihat artikel saya disini

Dan untuk Anda yang ingin mengambil table yang sama dengan contoh di atas, dapat mengambilnya di halaman "Daftar Download Script SQL" dengan nama exchange_rate.sql.


Comments