2011-11-16 179 views
0

我有一個包含以下信息聚合函數

date    sales 
2011-02-13  1 
2011-02-13  3 
2011-02-13  2 
2011-02-14  1 
2011-02-14  5 
2011-02-14  8 
2011-02-15  2 
etc ... 

我怎麼知道什麼是週期平均量的表? 比如我要得到這樣一個結果: 銷售2,4爲每天期間2011-02-11 - 2011-02-15

+1

你從哪兒弄來2,4? – SAN

回答

1
select avg(sales) from table where date <= x and date >= y 

您的X和Y的日期如

select avg(sales) from table where date <= '2011-02-15' and date >= '2011-02-11' 
+0

'where'首先篩選您感興趣的行,然後avg(這是一個聚合函數)將計算剩餘集合的一個結果。 – Jerome

+2

但問題是,你認爲每天有一行不是這種情況。我認爲有一個額外的groupby和可能需要的總和,但不知道具體到底是多少。 – Flo

+0

的確我假設每天有一行。我不認爲這是一個好的設計,每個日期有多行,日期應該至少是一致性的關鍵。 – Jerome

1

如果`date`DATE數據類型:

SELECT SUM(sales)/(1 + DATEDIFF('2011-02-15', '2011-02-11')) 
     AS AverageSalesPerDay 
FROM TableX 
WHERE `date` BETWEEN '2011-02-11' 
       AND '2011-02-15' 

如果是DATETIMETIMESTAMP

SELECT SUM(sales)/(DATEDIFF('2011-02-16', '2011-02-11')) 
     AS AverageSalesPerDay 
FROM TableX 
WHERE `date` >= '2011-02-11' 
    AND `date` < '2011-02-16'