comptage de requêtes SQL lignes par id par la sélection de gamme entre 2 dates min dans différentes colonnes

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

Le tableau « temp » indique aux utilisateurs qui ont reçu une demande d'une activité. Un utilisateur peut effectuer plusieurs requêtes. D'où la colonne a reçu plusieurs dates indiquant lorsque les demandes ont été reçues. La table « changé » quand le statut a été modifié. Il y a aussi plusieurs valeurs pour elle. Besoin de trouver le comte de requêtes par utilisateur entre la date et la date MIN (modifiée) MIN (reçu) Le résultat attendu devrait ressembler à ceci: - La troisième rangée de 33 id- ne doit pas être sélectionné parce que la date de réception est changé après la Date.

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


Création de 2 CTE Essayé est pour les deux valeurs de date MIN et jointe à l'original

Créé 14/02/2020 à 00:03
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Je peux être vraiment trop simplifier votre tâche, mais ne serait pas quelque chose comme ce travail?

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

Je crois que la sortie correspondra à votre exemple sur le cas d'utilisation que vous avez indiqué, mais avec un ensemble de données limité, il est difficile d'être sûr.

Créé 14/02/2020 à 02:28
source utilisateur

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