分组时限制数字记录

时间:2013-03-13 19:07:03

标签: mysql

我希望获得在特定年份的特定月份销售最多的十大产品。我做了以下事情:

SELECT Year(date1), Month(date1), `ProductID`, sum(`Price`*`Quantity`)"Sales" 
FROM `products`
Group By Year(date1), Month(date1), ProductId
order by Year(date1), Month(date1), Sales Desc;

但是,它给了我所有的产品,我只想要十大产品。  无法理解适用于10条记录的限制,

3 个答案:

答案 0 :(得分:1)

如果你按照自己的意愿设置排序,只需添加

即可
LIMIT 0,10

到您的查询

答案 1 :(得分:0)

在选择查询结尾处使用mysql内置函数Limit

LIMIT {[offset,] row_count | row_count OFFSET offset}
            ^                    ^
        Starting tuple     Number of tuples

更多阅读Go Here

答案 2 :(得分:0)

考虑重组group by子句,order by,where子句和date_format的用法

SELECT date_format(date1) as month, `ProductID`, sum(`Price`*`Quantity`)"Sales" 
FROM `products`
WHERE date1 > '2013-01-01' and date1 < '2013-02-01'
Group By ProductId
order by Sales Desc
Limit 0,10
;