我有一个拥有客户表的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,但是我无法围绕如何根据日期字段的年份值进行分组,以及如何在订单中使用它们。
答案 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;