J'ai une table nommée PAYMENT
. Dans ce tableau, j'ai un ID utilisateur, un numéro de compte, un code postal et une date. Je souhaite rechercher tous les enregistrements de tous les utilisateurs qui effectuent plus d'un paiement par jour avec le même numéro de compte.
MISE À JOUR: De plus, il devrait y avoir un filtre qui ne compte que les enregistrements dont le code postal est différent.
Voici à quoi ressemble le tableau:
| user_id | account_no | zip | date | | 1 | 123 | 55555 | 12-DEC-09 | | 1 | 123 | 66666 | 12-DEC-09 | | 1 | 123 | 55555 | 13-DEC-09 | | 2 | 456 | 77777 | 14-DEC-09 | | 2 | 456 | 77777 | 14-DEC-09 | | 2 | 789 | 77777 | 14-DEC-09 | | 2 | 789 | 77777 | 14-DEC-09 |
Le résultat devrait ressembler à ceci:
| user_id | compte | | 1 | 2 |
Comment exprimeriez-vous cela dans une requête SQL? Je pensais me rejoindre mais pour une raison quelconque, mon compte est faux.
2
a un compte de4
- Vous voudrez supprimer leAccount_no
regroupement, je pense.Essayez cette requête:
la source
Je ne recommanderais pas le
HAVING
mot - clé pour les débutants, c'est essentiellement à des fins d'héritage .Je ne sais pas quelle est la clé de ce tableau (est-il entièrement normalisé , je me le demande?), Par conséquent j'ai du mal à suivre votre cahier des charges:
J'ai donc pris une interprétation littérale.
Ce qui suit est plus détaillé mais pourrait être plus facile à comprendre et donc à maintenir (j'ai utilisé un CTE pour la table
PAYMENT_TALLIES
mais cela pourrait être unVIEW
:la source
la source