如何从mysql表中按月计算记录数?

时间:2014-05-29 07:09:54

标签: mysql count

我有一个像这样的mysql表点

id | points | orderid | date
1  | 10     | 1234    | 2014-01-14
2  | 20     | 4321    | 2014-02-04
3  | 10     | 1234    | 2014-01-13

我想获得唯一订单的记录数

就好像我想填写jan月份的总记录一样,结果将是

1 不是2因为我需要获取唯一订单的记录

3 个答案:

答案 0 :(得分:8)

使用DISTINCT功能中的COUNT()修饰符。

SELECT YEAR(date) AS y, MONTH(date) AS m, COUNT(DISTINCT orderid)
FROM yourTable
GROUP BY y, m

答案 1 :(得分:1)

SELECT MONTHNAME(date_reg) M, YEAR(date_reg) Y, COUNT(MONTHNAME(date_reg)) T 
FROM users 
WHERE date_reg BETWEEN DATE_ADD(DATE_SUB(DATE_SUB(LAST_DAY(NOW()), INTERVAL 
   DAY(LAST_DAY(NOW())) DAY), INTERVAL 5 MONTH), INTERVAL 1 DAY) AND   
   DATE_SUB(LAST_DAY(NOW()), INTERVAL DAY(LAST_DAY(NOW())) DAY) 
GROUP BY M 
ORDER BY Y, M DESC;

答案 2 :(得分:0)

您可以使用MySQL的sp_dropserver '<oldname>'; GO sp_addserver '<newname>', local; GO 函数将完整的日期字符串分割为年和月,并将结果字符串分组。

substr