SQL Query conteggio righe per id a selezionando intervallo tra 2 date min in diverse colonne

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

Gli utenti 'TEMP mostra la tabella che hanno ricevuto una richiesta di attività. Un utente può effettuare più richieste. Di qui la colonna ricevuto ha più date che mostrano quando è stato ricevuto delle richieste. La tabella indica 'cambiato' quando lo stato è stato cambiato. Ci sono anche più valori per esso. Necessità di trovare Conteggio delle richieste per utente tra la data MIN (ricevuto) e MIN data (modificato) Il risultato atteso dovrebbe essere simile a questo: - La terza fila di ID-33 non deve essere selezionato in quanto la data di ricezione è cambiato dopo il Data.

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


Provato a generare 2 CTE per entrambi i valori di data MIN e si è unito con quello originale

È pubblicato 13/02/2020 alle 22:03
fonte dall'utente
In altre lingue...                            


1 risposte

voti
1

Posso essere veramente over-semplificando il vostro compito, ma non sarebbe qualcosa di simile a questo lavoro?

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

Credo che l'uscita sarà abbinare il vostro esempio in caso d'uso che avete elencato, ma con un set di dati limitata è difficile essere sicuri.

Risposto il 14/02/2020 a 00:28
fonte dall'utente

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