J'essaie de créer une requête MySQL pour afficher la table où les requêtes de recherche sont stockées. Cette requête tente d'obtenir toutes les lignes correspondant aux critères suivants :
>=
à un rendez-vousCette requête ne fonctionne pas mais devrait donner un aperçu de ce que j'essaie de faire :
SELECT * FROM `analytics` WHERE `date` >= '2021-01-01' GROUP BY `query` HAVING COUNT(*) >= 3 AND GROUP BY `user` HAVING COUNT(*) >= 2 ORDER BY id DESC;
Exemple de données
id | Utilisateur | Requête | Date |
---|---|---|---|
1 | 5 | Qu'est-ce qu'un chien | 2021-01-01 |
2 | 5 | Qu'est-ce qu'un chien | 2021-01-01 |
3 | 6 | Qu'est-ce qu'un chien | 2021-01-01 |
4 | 7 | Qu'est-ce qu'un chien | 2021-01-01 |
5 | 7 | Que sont les frères | 2021-01-01 |
Exemple SQL
SELECT * FROM analytics WHERE date >= '2021-01-01' GROUP BY query HAVING COUNT(*) >= 3 AND GROUP BY user HAVING COUNT(*) >= 2 ORDER BY id DESC;
En utilisant les valeurs définies dans la requête ci-dessus, une seule ligne doit être renvoyée pour la requête "Qu'est-ce qu'un chien", toutes les autres colonnes sont sans importance.
Je sais que vous pouvez GROUPER PAR des colonnes séparées avec des virgules, mais je n'arrive pas à comprendre comment définir des valeurs différentes pour chaque colonne.
Vous pouvez définir les deux conditions dans la même clause
HAVING
: