Langsung saja ke kasus, contoh saya mempunyai tabel di database MySQL dengan nama tabel_1 dengan isi sebagai berikut:
| kelompok | nama |
| A | Adi |
| A | Budi |
| A | Budi |
| A | Cici |
| B | Beni |
| B | Dona |
| B | Joni |
| B | Luki |
dari tabel di atas, saya ingin mendapatkan hasil seperti berikut dengan sekali query select,
| kelompok | nama | nom |
| A | Adi | 1 |
| A | Budi | 2 |
| A | Budi | 3 |
| A | Cici | 4 |
| B | Beni | 1 |
| B | Dona | 2 |
| B | Joni | 3 |
| B | Luki | 4 |
dari hasil di atas terlihat tiap nama mendapatkan nomor urut per kelompok A dan B, dan meski ada nama yang sama tetap mendapatkan nomor urut yang unique per kelompok. Setelah utak atik berikut query select-nya:
SELECT f.kelompok,f.nama,FIND_IN_SET(CONCAT(f.nama,f.no),(SELECT GROUP_CONCAT(CONCAT(nama,nr) ORDER BY kelompok,nama) FROM (SELECT a.*,@nr:=@nr+1 AS nr FROM tabel_1 a, (SELECT @nr:=0) b ORDER BY kelompok,nama) c WHERE c.kelompok = f.kelompok )) AS nom FROM (SELECT d.kelompok,d.nama,@NO:=@NO+1 AS NO FROM tabel_1 d, (SELECT @NO:=0) e ORDER BY 1,2) f ORDER BY 1,2,3
tampak ribet dan panjang, semoga ke depan ada query yang lebih sederhana hehe, sekian dulu dan semoga bermanfaat.

Makin mantab nih mas Suhu pengetahuan sikilnya. Oh iya blog saya pindah alamat ke http://cio-indo.blogspot.com diubah ya blogroll-nya.
udah ane update ke sini mas http://cio-indo.blogspot.com, btw bukan cuma sikil tapi tangan juga
Thx mas master.
Buset, keren tp terlalu panjang suhu..