按年分组在MySQL中的日期字段

时间:2015-01-19 11:01:47

标签: mysql sql date group-by sql-order-by

我有一个拥有客户表的MySQL数据库。一些虚拟数据是:

customer_id    date
000001         2008-10-10
000002         2008-11-11
000003         2010-01-02
000004         2007-04-03
000005         2010-05-05

我想运行一个查询,它会给我一个像这样的结果:

year    customer_count
2007    1
2008    2
2010    2

我知道我需要使用group by,但是我无法围绕如何根据日期字段的年份值进行分组,以及如何在订单中使用它们。

3 个答案:

答案 0 :(得分:5)

从日期中提取年份并按其分组

select year(date) as year, 
       count(customer_id) as customers
from your_table
group by year
order by year asc

答案 1 :(得分:0)

使用YEAR函数获取日期的年份部分,并在分组和排序中使用它。

SELECT YEAR(date) AS year, COUNT(*) AS customer_count
FROM customer
GROUP BY year
ORDER BY year

答案 2 :(得分:0)

使用EXTRACT功能获取日期的相关部分:

select extract(YEAR from join_d)"Year",count(DISTINCT customer_id) "customer_count" 
from  customer 
group by year
order by year;