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

Преброяване на последователни числови стойности в SQL

Това е форма на проблем с пропуски и острови. Можете да присвоите всеки 0 група, като преброи броя на ненулевите стойности преди нея. След това обобщете.

SQL таблиците обаче представляват неподредени комплекти. Няма подреждане, освен ако колона не посочва подреждането. Нека предположим, че имате такъв. След това:

select count(*)
from (select t.*,
             sum(values <> 0) over (partition by idnumber order by <ordering col>) as grp
      from t
     ) t
where values = 0
group by idnumber, grp;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL/MariaDB TRIGGER

  2. Презареждане на .env променливи без рестартиране на сървъра (Laravel 5, споделен хостинг)

  3. съпоставяне с думи с ударение, умлаути и т.н. mysql/php

  4. PHP 7.0 и MySQL грешка при стартиране недефиниран символ:mysqlnd_allocator в неизвестен

  5. JPA/Hibernate не може да създаде обект, наречен Order