Mysql
 sql >> база данни >  >> RDS >> Mysql

Групирайте последователно стойности в MySQL и добавете идентификатор към такива групи

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

РЕДАКТИРАНЕ

В случай, че искате само 4 на група, добавете променлива с номер на ред:

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. Множество връзки между две субекти, това добра практика ли е?

  2. изчисляване на общата сума на всички цифри в колона

  3. Едновременни актуализации на MySQL

  4. MySQL присъединява много към много единичен ред

  5. MySQL my.ini местоположение