Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zwiększenie numeru wiersza w grupie z powtarzającymi się grupami

Możesz użyć różnicy numerów wierszy do zdefiniowania grup:

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);

Trochę trudno wyjaśnić, dlaczego to działa. Jeśli spojrzysz na wyniki podzapytania, stanie się oczywiste, dlaczego różnica między dwoma row_number() wartości identyfikują kolejne grupy.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zwiększyć wydajność zbiorczych operacji WSTAWIANIA do tabel połączonych ODBC w programie Access?

  2. Uzyskaj listę liczb pomiędzy dwiema kolumnami za pomocą klawisza

  3. Czy możliwe jest zapytanie kolumny oddzielonej przecinkami dla określonej wartości?

  4. Pobierz wiersz, który ma maksymalną wartość dla kolumny

  5. łącząca wyrocznię z r