Inclure le zéro compte pour le groupement date variait en fonction de la requête SQL

0

La question

Je suis en train de groupe et de l'ordre du nombre de ventes réalisées dans chaque jour à partir d'un seul "chiffre d'affaires" de la table avec une created_at colonne et une id la colonne. Chacun de ces dossiers peuvent être créés à travers le jour, à tout moment. J'ai réussi à le faire avec la requête suivante:

SELECT date_trunc('day', created_at::date) AS period, COUNT(id)
FROM sales
GROUP BY period
ORDER BY period

Cependant, les jours avec 0 ventes n'ont pas montré jusqu'à. Des idées? La plupart des réponses que j'ai trouvé l'utilisation LEFT JOIN mais je n'arrive pas à le faire fonctionner, alors j'ai peut sembler être de l'incompréhension comment l'utiliser. :(

Je vous remercie à l'avance!

group-by left-join sql
2021-11-17 18:12:10
1

La meilleure réponse

0

Créer une table temporaire qui retourne la date exigée, puis rejoindre il

DECLARE @StartDateTime DATETIME
DECLARE @EndDateTime DATETIME

SET @StartDateTime = '2015-01-01'
SET @EndDateTime = '2015-01-12';

WITH DateRange(DateData) AS 
(
    SELECT @StartDateTime as Date
    UNION ALL
    SELECT DATEADD(d,1,DateData)
    FROM DateRange 
    WHERE DateData < @EndDateTime
)

SELECT DateRange.DateData, Count(sales.id)
  FROM sales
  right join DateRange on sales.date = DateRange.DateData
  group by DateRange.DateData

OPTION (MAXRECURSION 0)
2021-11-17 18:51:39

Merci. Je vais donner à ceci un essai, mais juste curieux de savoir si il existe un moyen de le faire sans la création d'une table temporaire?
RDW

Salut RDW, je ne pense pas qu'il y est un autre moyen
Rami Bancosly

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................