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

Как да попълните редове въз основа на данни за тип събитие

Ако приемем, че:

  • работите с Postgres

  • даден клиент винаги има точно два реда в таблицата

  • hour е от тип данни, подобен на дата

Тогава една опция е да използвате generate_series() със странично съединение, така:

select t.customer_id, x.hour
from (
    select customer_id, min(hour) min_hour, max(hour) max_hour 
    from mytable 
    group by customer_id
) t
cross join lateral generate_series(min_hour, max_hour, '1 hour') x(hour)
order by t.customer_id, x.hour

Демо на DB Fiddlde :

customer_id | hour               
:---------- | :------------------
X           | 2019-04-01 13:00:00
X           | 2019-04-01 14:00:00
X           | 2019-04-01 15:00:00
X           | 2019-04-01 16:00:00
X           | 2019-04-01 17:00:00
Y           | 2019-04-01 17:00:00
Y           | 2019-04-01 18:00:00
Y           | 2019-04-01 19:00:00



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка при компилация на Dokku - django.core.exceptions.ImproperlyConfigured:Грешка при зареждане на модул psycopg2:Няма модул с име 'psycopg2'

  2. Променлива, съдържаща броя на редовете, засегнати от предишното ИЗТРИВАНЕ? (във функция)

  3. Sequelize:Запитване дали ARRAY съдържа стойност

  4. Как да не се показва парола в ясен текст при свързване към postgres чрез sqlalchemy, psycopg2?

  5. Проверете дали съществува колона на таблица в базата данни с помощта на SQLAlchemy и Alembic