MySQL - 在select中获得每个月的平均值

时间:2014-03-05 22:30:24

标签: mysql

我有一个演示表,其中包含日期列表,玩具类型,玩具年龄组和销售数据。我想获取按月订购的销售清单,但是每个月的平均值:

Table
Date | Type | Age | Sales
2014-01-04 | Blocks | 3+ | 1000
2014-01-12 | Blocks | 3+ | 2000
2014-01-23 | Blocks | 3+ | 1500
2014-02-04 | Blocks | 3+ | 1000
2014-02-12 | Blocks | 3+ | 3500
2014-02-23 | Blocks | 3+ | 700
2014-03-04 | Blocks | 3+ | 1100
2014-04-12 | Blocks | 3+ | 2100
2014-04-23 | Blocks | 3+ | 1200

思考更大规模,即成千上万的记录,下面的查询是否正确或有更好的方法吗?

SELECT YEAR(Date) AS MyYear,MONTH(Date) AS MyMonth,AVG(Sales) AS MyValue
FROM SalesTable
WHERE Type LIKE 'Blocks%' AND Age='3+'
GROUP BY MyYear, MyMonth;

1 个答案:

答案 0 :(得分:0)

避免不必要地使用LIKE。在您的示例中,不需要LIKE。这会影响数据增长时的性能。

Type LIKE 'Blocks%' 

此外,您可能需要考虑索引类型和年龄列。