Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kelompokkan nilai secara berurutan di MySQL dan tambahkan id ke grup tersebut

SELECT language,id,g
FROM (
  SELECT language,id,
    CASE WHEN [email protected]+1 THEN @n ELSE @n:[email protected]+1 END AS g,
    @lastid := id As b
  FROM
    t, (SELECT @n:=0) r
  ORDER BY
    id
) s

EDIT

Jika Anda ingin hanya 4 per grup, tambahkan variabel nomor baris:

SELECT language,id,g,rn
FROM (
  SELECT language,id,
    CASE WHEN [email protected]+1 THEN @n ELSE @n:[email protected]+1 END AS g,
   @rn := IF(@lastid+1 = id, @rn + 1, 1) AS rn,
    @lastid := id As dt
  FROM
    t, (SELECT @n:=0) r
  ORDER BY
    id
) s
Where rn <=4

FIDDLE



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menggabungkan item yang hampir sama dengan SQL?

  2. BERALIH dengan LIKE di dalam kueri SELECT di MySQL

  3. MySQL REGEXP Tanpa Spasi Tanpa Angka

  4. JDBC di Skrip Google Apps. Pengecualian:Pernyataan dibatalkan karena batas waktu atau permintaan klien

  5. Bisakah saya membuat objek data Squeryl secara otomatis untuk mencerminkan skema MySql yang ada?