sql >> Database teknologi >  >> RDS >> Mysql

Tæl fortløbende numeriske værdier i SQL

Dette er en form for huler-og-øer-problem. Du kan tildele hver 0 en gruppe ved at tælle antallet af ikke-nul værdier før den. Aggreger derefter.

SQL-tabeller repræsenterer dog uordnet sæt. Der er ingen bestilling, medmindre en kolonne angiver bestilling. Lad mig antage, at du har en. Så:

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. Hvordan dropper man en kolonne i SQL?

  2. MySQL Brug for hjælp til at konstruere forespørgsel:sammenføj flere tabeller i en enkelt række

  3. Indsæt stien til en fil med \\ i mysql ved hjælp af java

  4. postgresql createdb og CREATE DATABASE giver en ikke-tom database. hvad for en gaffel?