SQL-запрос подсчета строк на идентификатор путем выбора диапазона между 2 мин датами в разных колонках

голоса
-1
       temp
|id|received  |changed   |
|33|2019-02-18|2019-11-18|
|33|2019-08-02|2019-09-18|
|33|2019-12-27|2019-12-18|
|18|2019-07-14|2019-10-18|
|50|2019-03-20|2019-05-26|
|50|2019-01-19|2019-06-26|

Пользователи «Темп» таблица показывает, получавшие запрос о деятельности. Пользователь может сделать несколько запросов. Следовательно, полученный столбец имеет несколько дат, показывающие, когда было получено запросы. В «изменены» таблица показывает, когда был изменен статус. Есть также несколько значений для этого. Нужно найти COUNT запросов на одного пользователя между МИН (получено) Дата и MIN (изменено) Дата Ожидаемый результат должен выглядеть следующим образом: - Третий ряд id- 33 не должны быть выбраны потому, что принимаемый дата после измененное Дата.

|id|total_requests_sent|
|33|2                  |
|18|1                  |
|50|2                  |


Пробовал Создание 2 КТР для обоих значений даты MIN и вместе с исходной

Задан 14/02/2020 в 00:03
источник пользователем
На других языках...                            


1 ответов

голоса
1

Может быть, я действительно чрезмерно упрощая задачу, но не будет что-то вроде этой работы?

select
  t.id, count (*) as total_requests_sent
from
  temp t
  join temp2 t2 on
    t.id = t2.id
where
  t.received between t2.min_received and t2.min_changed
group by
  t.id

Я считаю, что выход будет соответствовать вашему примеру на прецеденте вы перечислили, но с ограниченным набором данных, трудно быть уверенным.

Ответил 14/02/2020 в 02:28
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more