Je sens que j'ai déjà vu cette question, mais ni la recherche SO ni google ne m'aide ... peut-être que je ne sais pas comment formuler la question. J'ai besoin de compter le nombre d'événements (dans ce cas, les connexions) par jour sur une période donnée afin que je puisse faire un graphique de l'utilisation du site. La requête que j'ai à ce jour est le suivant:SQL pour compter les événements par date
select
count(userid) as numlogins,
count(distinct userid) as numusers,
convert(varchar, entryts, 101) as date
from
usagelog
group by
convert(varchar, entryts, 101)
Cela fait plus de ce que je dois (je reçois une ligne par date que la sortie contenant le nombre total de connexions et le nombre d'utilisateurs uniques à cette date). Le problème est que si personne ne se connecte à une date donnée, il n'y aura pas de ligne dans l'ensemble de données pour cette date. Je veux qu'il ajoute des lignes indiquant les connexions zéro pour ces dates. Il y a deux approches auxquelles je peux penser pour résoudre ceci, et aucune ne me semble très élégante.
- Ajoutez une colonne au jeu de résultats qui répertorie le nombre de jours entre le début de la période et la date de la ligne en cours. Lorsque je construis ma sortie graphique, je garde une trace de cette valeur et si la ligne suivante n'est pas égale à la ligne courante plus une, insère des zéros dans le tableau pour chacun des jours manquants.
- Créez une table "date" contenant toutes les dates de la période d'intérêt et la jointure externe. Malheureusement, le système sur lequel je travaille a déjà une table à cet effet qui contient une rangée pour chaque date dans le futur ... Je n'aime pas ça, et je préfère éviter de l'utiliser, d'autant plus que La table est destinée à un autre module du système et introduirait ainsi une dépendance à ce que je développe actuellement.
De meilleures solutions ou astuces pour de meilleurs termes de recherche pour google? Merci.
C'est aussi une bonne idée :) –
J'ai fini par utiliser la table de date existante dans mon application et je tolère juste la dépendance qu'elle a introduite. C'était la solution la plus rapide. – rmeador