SQL ερώτημα καταμέτρηση γραμμών ανά id να επιλέγοντας εύρος μεταξύ 2 ημερομηνιών min σε διαφορετικές στήλες

ψήφοι
-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|

Οι «θερμοκρασία» πίνακας δείχνει τους χρήστες που έλαβε αίτημα για μια δραστηριότητα. Ένας χρήστης μπορεί να κάνει πολλαπλές αιτήσεις. Ως εκ τούτου, το λαμβανόμενο στήλη έχει πολλές ημερομηνίες που δείχνει την παραλαβή των αιτήσεων. Οι «αλλάξει» πίνακας δείχνει, όταν η κατάσταση άλλαξε. Υπάρχουν επίσης πολλές τιμές για αυτό. Ανάγκη να βρείτε την καταμέτρηση των αιτήσεων ανά χρήστη μεταξύ της ημερομηνίας MIN (λάβει) και 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