Query Ilość rzędów na identyfikator poprzez wybranie granicach 2 terminach min w różnych kolumnach

głosy
-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|

W „” pokazuje temp tabeli użytkowników, którzy otrzymali wniosek o aktywności. Użytkownik może dokonać wielu żądań. Stąd otrzymał kolumna ma wiele dat pokazujące kiedy żądania został odebrany. W „zmienione” tabela pokazuje, kiedy stan został zmieniony. Istnieje również wiele wartości dla niego. Potrzeba znalezienia Ilość wniosków na użytkownika pomiędzy MIN (otrzymane) Data i MIN (zmienione) daty Oczekiwany wynik powinien wyglądać następująco: - trzeci rząd id- 33 nie powinna być wybrana, ponieważ data otrzymania jest po zmienił data.

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


Próbowaliśmy Tworzenie 2 CTE dla obu aktualnych wartości MIN i połączone z oryginalnymi

Utwórz 13/02/2020 o 22:03
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
1

Mogę być naprawdę nadmiernie upraszcza zadanie, ale nie coś w tej pracy?

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

Wierzę, że wyjście będzie pasował do Twojego przykład w przypadku użycia skojarzony, ale o ograniczonym zbiorze trudno mieć pewność.

Odpowiedział 14/02/2020 o 00:28
źródło użytkownik

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