首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >每个日期的SQL计数

每个日期的SQL计数
EN

Stack Overflow用户
提问于 2009-04-30 19:19:25
回答 6查看 142.1K关注 0票数 31

我有以下需求

我有一个日志表,记录每天产生的一些线索。

现在,我需要对过去10天内每天的潜在客户数量进行报告。

假设表格看起来像这样:

tbl_leads
id int,
first_name nvarchar(100),
last_name nvarchar(100),
created_date datetime

我需要计算每天的线索数量,总共10天。因此,结果集应该如下所示:

counted_leads | count_date
5             | 2009-04-30
7             | 2009-04-29
5             | 2009-04-28
7             | 2009-04-27

..。诸若此类

有人知道怎么做才是最好的方法吗?我目前的解决方案是在c#中使用foreach进行迭代,但我非常希望在sql server上使用它,而不是在sp中。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-04-30 19:22:08

您可以使用:

Select
     count(created_date) as counted_leads,
     created_date as count_date
from
     table
group by
     created_date
票数 46
EN

Stack Overflow用户

发布于 2009-04-30 19:29:45

您的created_date字段为datetime,因此如果您想要按日期进行分组,则需要在分组生效之前去掉时间:

SELECT COUNT(created_date), created_date 
FROM table 
WHERE DATEDIFF(created_date, getdate()) < 10
GROUP BY convert(varchar, created_date, 101)
票数 10
EN

Stack Overflow用户

发布于 2009-04-30 20:26:44

最有效的方法是按整数进行聚合,然后转换回datetime进行表示。

select 
    cast(daybucket - 1 as datetime) as count_date,
    counted_leads
from 
    (select 
         cast(created_date as int) as DayBucket,
         count(*) as counted_leads
     from mytable
     group by cast(created_date as int) ) as countByDay
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/808611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档