SQL-spørring count rader per id, ved å velge området mellom 2 min datoer i forskjellige kolonner

stemmer
-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|

The 'temp' Tabellen viser brukere som har mottatt en anmodning om en aktivitet. En bruker kan gjøre flere forespørsler. Derav fikk kolonnen har flere datoer som viser når forespørsler ble mottatt. The 'endret' tabellen viser når status ble endret. Det er også flere verdier for det. Trenger du å finne greven av forespørsler per bruker mellom MIN (mottatt) dato og MIN (endret) dato Den forventede resultatet skal se slik ut: - Den tredje raden av ID- 33 bør ikke velges fordi mottaksdato er etter endret Dato.

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


Prøvde Lage to CTE-er for både MIN datoverdier og sluttet med den originale

Publisert på 14/02/2020 klokken 00:03
kilden bruker
På andre språk...                            


1 svar

stemmer
1

Jeg kan være veldig over forenkle oppgaven, men ville ikke noe sånt som dette arbeidet?

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

Jeg tror produksjonen vil matche ditt eksempel på bruk tilfelle du listet opp, men med et begrenset datasett er det vanskelig å være sikker.

Svarte 14/02/2020 kl. 02:28
kilden bruker

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