2011-11-16 130 views
0

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

date    sales 
2011-02-13  1 
2011-02-13  3 
2011-02-13  2 
2011-02-14  1 

我試圖讓每天avarage銷售的表。這裏是我如何獲得信息

SELECT * FROM tbl WHERE date BETWEEN MAX(date) AND MIN(date) 

問題是,mysql沒有返回任何結果。哪裏不對 ?

+5

當前的意圖是當前等於'SELECT * FROM tbl;' – newtover

+0

我不明白你想要做什麼 - 你的查詢日期總是在最大和最小之間,所以你可以刪除條件。也許更詳細地解釋這個問題? – matino

回答

3

嘗試倒車MIN()MAX()

SELECT * FROM tbl WHERE date BETWEEN MIN(date) AND MAX(date) 

從文檔,其值必須爲> =分鐘(第一表達式)和< = MAX(第二個表達式):

http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between

+0

我這樣做,但沒有結果 – user1049508

+0

我想SELECT * FROM TBL WHERE日期> = MIN(日期)和日期<= MIN(日期) 還是沒有結果 – user1049508

+0

你的意思是日期<= MAX(日期)吧? – JohnD

0

不要完全知道你以後有什麼聚合但是,如果其銷售的總和,然後

SELECT SUM(銷售)凡

敏(日期1)和Max(DATE2)之間

日期

0

我不明白您的查詢,但我認爲這是更你想要什麼:

SELECT AVG(sales) FROM tbl GROUP BY DAY(date) 
0

如果你需要每天平均銷售:

SELECT date, sum(sales)/count(distinct date) FROM tbl GROUP BY date