sql >> Database >  >> RDS >> Oracle

Verhoog rijnummer op groep met herhaalde groepen

U kunt het verschil in rijnummers gebruiken om de groepen te definiëren:

select Shade, count(*) as amount
from (select t.*,
             row_number() over (order by level) as seqnum,
             row_number() over (partition by shade order by level) as seqnum_s
      from t
     ) t
group by Shade, (seqnum - seqnum_s);

Het is een beetje moeilijk uit te leggen waarom dit werkt. Als je naar de resultaten van de subquery kijkt, wordt het duidelijk waarom het verschil tussen de twee row_number() waarden identificeren opeenvolgende groepen.




  1. iPhone-applicatie Gegevens ophalen uit Mysql-database

  2. Hoe kan ik een primaire sleutelbeperking wijzigen met behulp van de SQL-syntaxis?

  3. Oracle Apex 5.1:Over het maken van een leeg invoerformulier zoals het invoerformulier bij het maken van een tabel

  4. gegevens invoegen in MYSQL met behulp van PHP-array