Patří nula se počítá pro seskupení datum pohybovala na základě SQL dotazu

0

Otázka

Snažím se do skupiny a pořadí, počet prodejů za každý den z jednoho "prodeje" se tabulka s created_at sloupec a id sloupec. Jednotlivé záznamy mohou být vytvořeny přes den kdykoliv. Podařilo se mi to s následující dotaz:

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

Nicméně, dny s 0 prodeje nejsou zobrazeny. Nějaké nápady? Většinu odpovědí jsem zjistil, použijte LEVÉ PŘIPOJIT, ale nemůžu se dostat do práce, takže jsem se může zdát být nedorozumění, jak to použít. :(

Děkuji předem!

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

Nejlepší odpověď

0

Vytvořit dočasnou tabulku, která vrátí požadovaná data a pak se připojit k ní

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

Díky. Dám to zkusit, ale jen mě zajímalo, jestli existuje nějaký způsob, jak to udělat bez vytvoření dočasné tabulky?
RDW

Ahoj, RDW, nemyslím si, že existuje jiný způsob, jak
Rami Bancosly

V jiných jazycích

Tato stránka je v jiných jazycích

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