【问题标题】:How to find the average (in terms of date/day) in sql server?如何在 sql server 中找到平均值(以日期/天计)?
【发布时间】:2012-06-08 09:56:17
【问题描述】:

我想找到类似的结果

  1. 我想从系统中获取当前日期。
  2. 我想检索该日期的对应日期。
  3. 然后回到当前日期 90 天,并想尝试找出类似的日子发生了多少次。
  4. 想了解那些天到诊所就诊的患者总数。 (ex.COUNT(VisitId)) 来自我的 PtientVisist 表。
  5. 最后想计算当天就诊患者的平均值。

like-> 如果我得到今天的日期 2012 年 6 月 8 日并将今天检索为 Friday 。所以想知道 就像从今天开始的过去 90 天以来,已经发生了多少个星期五以及在该总星期五访问了多少患者,并且想要计算 AVG = 访问的患者总数/总星期五。

请提供一些帮助提前谢谢。

【问题讨论】:

  • 这纯粹是用sql吗?还是你也在用代码编程?
  • 是的,它纯粹是在 SQL Server 中?
  • 如果您可以提供表格结构、示例数据和预期输出以及该示例数据,对您的帮助会容易得多。

标签: sql sql-server sql-server-2008 average


【解决方案1】:

获取时间跨度中一周中的天数的空气代码:

DECLARE @enddate datetime
SET @enddate = GETDATE()

DECLARE @dayofweek nvarchar(50)
SELECT @dayofweek = DATENAME(dw, getdate())

DECLARE @startdate datetime
SELECT @startdate = DATEADD(d,-90,  getdate())

DECLARE @count int
SET @count = 0

WHILE (@startdate < @enddate)
BEGIN
    IF (DATENAME(dw, @startdate) = @dayofweek)
        BEGIN
            SET @count = @count + 1
        END
    SET @startdate = DATEADD(d, 1, @startdate)
END

PRINT @count

您可以对循环中的实际日期执行某些操作,以获得最终查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多