如何在sql server中获取本周的每日数据

Posted

技术标签:

【中文标题】如何在sql server中获取本周的每日数据【英文标题】:how to get day wise data of this week in sql server 【发布时间】:2018-09-18 08:13:46 【问题描述】:

我有包含用户数据的数据条目表(ServiceData)。列是 Userid、BillDate(类型 DateTime)等。 我需要每周(当前周)获取用户数。

查询

select     BillDate
          ,DATENAME(dw,BillDate) as day 
          ,count(BillDate) as total 
from ServiceData 
group by 
BillDate,DATENAME(dw,BillDate) 
order by BillDate desc

这只是获取账单日期的日期,但我想获取周日进入的计数,周一进入的计数......从周日到周六(当前周)这可能吗?

预期输出

    ID   |   TOTAL  |   DAY
   --------------------------
    1    |    23    |   Sun
    2    |    54    |   Mon
    3    |    17    |   Tues
    4    |    56    |   Thus
    5    |    45    |   Fri
    6    |    78    |   Sat

【问题讨论】:

您只向我们展示了预期的输出。样本输入怎么样? 欢迎来到 ***!您能否请edit您的问题并添加更多信息。您能否向我们提供一些表ServiceData 的样本数据。也请告诉我们您自己已经尝试过的查询。 【参考方案1】:

这应该可以解决问题:

SELECT 
  row_number() over (order by (SELECT 1)) ID,
  count(*) Total,
  LEFT(Datename(weekday, Cast(Billdate as date)), 3) Day
FROM 
  ServiceData
WHERE
  BillDate >= dateadd(week, datediff(d, -1, getdate()-2)/7, -1)
GROUP BY
  Cast(Billdate as date)
ORDER BY
  Cast(Billdate as date)

【讨论】:

非常感谢您的回答

以上是关于如何在sql server中获取本周的每日数据的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver如何实现本周过生日的用户

SQL SERVER 获取本周的起始截至日期

如何在 SQL Server 中使用聚合函数

SQL Server 获取(本周本月本旬本季本年)的某一天

SQL Server 获取本周,本月,本年等时间内记录

SQL Server 获取本周,本月,本年等时间内记录