sql >> Databáze >  >> RDS >> Mysql

Mysql:najděte počet řádků, které mají stejnou hodnotu jeden po druhém

Oh, myslím, že jsem na to přišel. Záleží vám na posloupnosti hodnot, které spolu sousedí. První sloupec je maximální id, druhý je hodnota a třetí je délka.

Ano, můžete to udělat pomocí proměnných:

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. Výkon serveru SQL – testování v cloudu

  2. mysql:vyberte všechny položky z tabulky A, pokud neexistují v tabulce B

  3. Jak mohu použít skupinu se třemi sloupci dat?

  4. Node.js vrací výsledek z dotazu MySQL