PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak zdobyć numer zmiany?

Możesz to osiągnąć, zagnieżdżając dwie funkcje okna — pierwszą, która sprawdza, czy src wartość zmieniona z poprzedniego wiersza, druga to suma ilości zmian. Niestety Postgres nie pozwala na bezpośrednie zagnieżdżanie funkcji okna, ale możesz to obejść z podzapytanie:

SELECT
  id,
  src,
  sum(incr) OVER (ORDER BY id)
FROM (
  SELECT
    *,
    (lag(src) OVER (ORDER BY id) IS DISTINCT FROM src)::int AS incr
  FROM example
) AS _;




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd PostgreSQL:nie można odebrać danych od klienta:Podjęto próbę operacji na czymś, co nie jest gniazdem

  2. Uzyskaj całkowity przedział czasu z wielu wierszy, jeśli sekwencja nie jest zepsuta

  3. PostgreSQL:Identyfikacja powracających użytkowników na podstawie daty - złączenia czy funkcje okna?

  4. Znajdź subskrybentów, którzy nie odnowili subskrypcji w ramach progu starej subskrypcji

  5. zbuduj dynamiczne zapytanie SQL za pomocą biblioteki psycopg2 python i używając dobrych narzędzi do konwersji