我遇到了一个问题,我已经解决了3天了。 问题是最新的,有两列日期数据库(“yyyy-mm”),电话号码是唯一的非重复。我想知道每个月有多少新客户。那么,公式大致是最新的(新客户是第一个月+新客户是下个月......)。如果客户遇到第一个月他被认为是新客户,那么在另一个月,他就错过了一个新客户。
答案 0 :(得分:1)
尝试这样的事情:
select year(f2.DateColumn) YearCol, month(f2.DateColumn) MonthCol, count(f2.PhoneNumber) NbNewPhone
from (
Select f1.*, row_number() over(partition by f1.PhoneNumber order by f1.DateColumn) rang
from yourTable f1
) f2
where f2.rang=1
group by year(f2.DateColumn), month(f2.DateColumn)
order by 1, 2
或者如果您的列不是日期:
select f2.DateColumn, count(f2.PhoneNumber) NbNewPhone
from (
Select f1.*, row_number() over(partition by f1.PhoneNumber order by f1.DateColumn) rang
from yourTable f1
) f2
where f2.rang=1
group by f2.DateColumn
order by 1, 2
答案 1 :(得分:0)
根据你的例子,下面的数量就足够了:
Select DateColumn, Count(PhoneNumber) from yourTable
Group by DateColumn
如果Datecolumn的实际日期为yyyy-mm-dd,其日期数据类型可以查询如下:
Select year(datecolumn), month(datecolumn), count(PhoneNumber) from yourTable
group by year(datecolumn), month(datecolumn)