SQL查询根据加入日期获取客户数量

标签 sql sql-server

我有一个表“客户”。

它有一个列名“CreatedDate”,表示它是客户的加入日期。

我想计算从当前日期到终止日期 1-5 年、6-10 年、11-15 年之间有多少客户,如下所示

Years         No of Customer
0-5           200
6-10          500
11-15         100

详细说明,如果客户创建日期是“5-5-2010”,那么它应该在当前日期后 0-5 年的范围内。

如果创建日期是“5-5-2006”,那么它应该在当前日期后 6-10 年的范围内。

最佳答案

像这样:

with cte as (
  select ((datediff(yy, CreatedDate, getdate()) - 1) / 5) * 5 + 1 as d
  from Customers
)
select
  cast(d as nvarchar(max)) + '-' + cast(d + 4 as nvarchar(max)),
  count(*)
from cte
group by d

sql fiddle demo

关于SQL查询根据加入日期获取客户数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19487147/

相关文章:

mysql - 修剪(两者)不修剪主角

sql-server - Receive-Job返回的意外变量类型

sql-server - CRM 2011 Silverlight 存储过程

sql - 如何从 SQL Server 上的一张表中删除 8,500,000 条记录

SQL Alias vs dbo.prefix - 查询性能

sql - 获取参数日期的年份

c# - 是否可以使用 SQL 查询 XML 文件?

java - 编译时 SQL 中的单个代码问题

sql-server - nodejs 出现 mssql 连接超时错误

sql-server - SQL PIVOT 在可变数量的行上