J'ai une table avec les données suivantes:SQL - Récupérer des valeurs dans une seule requête avec plusieurs où les clauses
UserName | LastLogin
-------------------------------
User1 | 2010-10-25 10:05:47
User2 | 2010-10-23 11:10:27
User3 | 2010-10-12 05:39:34
User4 | 2010-10-20 12:22:11
User5 | 2010-09-17 08:41:05
Je veux être en mesure d'exécuter une requête pour obtenir le nombre de personnes qui se sont connectés dans les 3 derniers jours, les 7 derniers jours et les 21 derniers jours (je sais que ces chiffres se chevaucheront). Je sais que je peux obtenir chaque valeur particulière en exécutant une requête comme (syntaxe ne peut pas être 100% correct):
SELECT COUNT(*)
FROM login
WHERE LastLogin >= DATEDIFF(NOW(), LastLogin, INTERVAL 3 DAY);
Puis-je exécuter une requête pour renvoyer les trois valeurs dans une requête? Est-ce qu'un GROUP BY fonctionnera, ou est-ce que je peux utiliser des requêtes imbriquées? Est-il tout aussi efficace d'exécuter la requête trois fois avec l'intervalle spécifié?