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

Изберете само редове, в които има променена колона от редовете преди нея, с уникален идентификатор

Това е проблем с пропуски и острови. Искате началото на всеки остров, което можете да идентифицирате, като сравните състоянието на текущия ред със състоянието на „предишния“ запис.

Функциите на прозореца са полезни за това:

select t.*
from (
    select t.*, lag(status) over(partition by personID order by unixtime) lag_status
    from mytable t
) t
where lag_status is null or status <> lag_status



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да използвам SQL for цикъл за вмъкване на редове в база данни?

  2. Каква информация за часовата зона съхранява PostgreSQL?

  3. PostgreSQL:Пълно текстово търсене - Как да търсите частични думи?

  4. SQL прозоречна функция с клауза where?

  5. Използване на Postgresql JDBC източник с Apache Spark на EMR