@vbNoName

Как выбрать юзеров у которых первый комментарий попадает в заданный диапазон?

Есть таблица юзеров, и таблица комментариев.

CREATE TABLE users (
  id SERIAL NOT NULL PRIMARY KEY
);

CREATE TABLE comments (
  id SERIAL NOT NULL PRIMARY KEY,
  user_id INT NOT NULL,
  created_at TIMESTAMP NOT NULL DEFAULT NOW(),
  CONSTRAINT fk_users_comment FOREIGN KEY (user_id) REFERENCES users (id)
  ON UPDATE CASCADE
  ON DELETE CASCADE 
)

Как выбрать юзеров, у которых created_at первого комментария попадает в заданный диапазон?
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
@d-stream
Готовые решения - не подаю, но...
получаем пары юзер-первый комментарий
select
user_id, first_comment = min(created_at)
group by user_id


ну а дальше либо cte, либо join, либо select из этого с заданием условия
where first_comment between _min_date_ and _max_date_
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
NeiroNx
@NeiroNx
Программист
SELECT u.id
FROM comments  c
LEFT JOIN users AS u ON u.id = c.user_id
WHERE c.created_at > to_timestamp('01.01.2019', 'DD.MM.YYYY') 
   AND c.created_at < to_timestamp('01.02.2019', 'DD.MM.YYYY')
GROUP BY u.id

Надо прокачивать скилл написания запросов...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы