sql >> Databasteknik >  >> RDS >> Mysql

Mysql:hitta antal rader som har samma värde en efter en

Åh, jag tror jag kom på det. Du bryr dig om sekvenser av värden som ligger intill. Den första kolumnen är det maximala id, den andra är värdet och den tredje är längden.

Ja, du kan göra detta med variabler:

select max(id), val, count(*)
from (select t.*,
             (@grp := if(@v = val, @grp,
                         if(@v := val, @grp + 1, @grp + 1)
                        )
             ) as grp
      from yourtable t cross join
           (select @v := -1, @grp := -1) params
      order by id
     ) t
group by grp, val
order by max(id);


  1. Vad betyder <> i mysql-frågan?

  2. Hur man mappar en PostgreSQL-array med Hibernate

  3. MySQL hitta första lediga helgen

  4. Tomcat kan inte hitta gdk_custom.jar, Oracle kan inte skapa den?