Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Mysql:znajdź liczbę wierszy o tej samej wartości jeden po drugim

Och, myślę, że to rozgryzłem. Zależy Ci na ciągach wartości, które sąsiadują ze sobą. Pierwsza kolumna to maksymalny identyfikator, druga to wartość, a trzecia to długość.

Tak, możesz to zrobić za pomocą zmiennych:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server i synchronizacja MySQL

  2. Jak napisać zapytanie join w Volusion API

  3. Zmiana roku w mysql date

  4. Czy mogę wprowadzić hasło raz dla wielu wywołań wiersza poleceń mysql, gdy zapytania nie są znane z góry?

  5. Jak utworzyć procedurę składowaną w MySQL za pomocą Knex raw