J'ai une table dans un avec la structure suivante:
CustID --- DateAdded ---
396 2012-02-09
396 2012-02-09
396 2012-02-08
396 2012-02-07
396 2012-02-07
396 2012-02-07
396 2012-02-06
396 2012-02-06
J'aimerais savoir comment je peux compter le nombre d'enregistrements par jour pour les 7 derniers jours en SQL, puis le renvoyer sous forme d'entier.
Actuellement, la requête SQL suivante est écrite:
SELECT *
FROM Responses
WHERE DateAdded >= dateadd(day, datediff(day, 0, GetDate()) - 7, 0)
RETURN
Toutefois, cela ne renvoie que toutes les entrées des 7 derniers jours. Comment puis-je compter les enregistrements par jour pour les 7 derniers jours?
select DateAdded, count(CustID)
from Responses
WHERE DateAdded >=dateadd(day,datediff(day,0,GetDate())- 7,0)
GROUP BY DateAdded
select DateAdded, count(CustID)
from tbl
group by DateAdded
environ 7 jours d'intervalle, il est question question DB
SELECT DateAdded, COUNT(1) AS NUMBERADDBYDAY
FROM Responses
WHERE DateAdded >= dateadd(day,datediff(day,0,GetDate())- 7,0)
GROUP BY DateAdded
SELECT count(*), dateadded FROM Responses
WHERE DateAdded >=dateadd(day,datediff(day,0,GetDate())- 7,0)
group by dateadded
RETURN
Cela vous donnera un nombre d'enregistrements pour chaque valeur dateadded. Ne commettez pas l'erreur d'ajouter plus de colonnes à la sélection, en espérant obtenir un seul compte par jour. La clause group by vous donnera une ligne pour chaque instance unique des colonnes répertoriées.
select DateAdded, count(DateAdded) as num_records
from your_table
WHERE DateAdded >=dateadd(day,datediff(day,0,GetDate())- 7,0)
group by DateAdded
order by DateAdded
vous pouvez aussi essayer ceci:
SELECT DISTINCT (DATE (date)) AS unique_date, COUNT (*) AS montant FROM tableGROUP BY unique_date ORDER BY unique_date ASC