2011-11-16 88 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