当前位置: 首页 > 面试题库 >

如何计算范围内每天的记录(包括没有记录的天数)

尉迟龙光
2023-03-14
问题内容

由于上次我并未真正提出正确的要求,因此我尝试对此问题进行一些细化。我本质上是在做这个查询:

Select count(orders)
From Orders_Table
Where Order_Open_Date<=To_Date('##/##/####','MM/DD/YYYY')
and Order_Close_Date>=To_Date('##/##/####','MM/DD/YYYY')

其中## / ## /

是同一天。本质上,此查询旨在查找任何给定日期的“未结”订单数。唯一的问题是,我想在一年或一天的每一天中都这样做。我想如果我知道如何将## /

/ ####定义为变量,然后将计数按该变量分组,那么我可以使它起作用,但我不确定如何做到这一点-
或在那里也可能是另一种方式。我目前在SQL开发人员上使用Oracle SQL。感谢您的任何投入。


问题答案:

您可以使用这样的“行生成器”技术 (针对Hogan的评论进行编辑)

Select RG.Day,
       count(orders)
From   Orders_Table,
      (SELECT trunc(SYSDATE) - ROWNUM as Day
       FROM  (SELECT 1 dummy FROM dual)
       CONNECT BY LEVEL <= 365
      ) RG
Where RG.Day              <=To_Date('##/##/####','MM/DD/YYYY')
  and RG.Day              >=To_Date('##/##/####','MM/DD/YYYY')
  and Order_Open_Date(+)  <= RG.Day
  and Order_Close_Date(+) >= RG.Day - 1
Group by RG.Day
Order by RG.Day

这应该列出上一年的每一天以及相应的订单数量



 类似资料:
  • 问题内容: 我有一个具有以下结构的表: 我想知道如何计算SQL中最近7天每天的记录数,然后将其作为整数返回。 目前,我编写了以下SQL查询: 但是,这仅返回过去7天的所有条目。如何计算过去7天每天的记录? 问题答案:

  • 问题内容: 我正在尝试计算表中的记录,并按日期将它们分组。我当前的查询如下所示: 这行得通,除了我还要数月不存在任何记录的计数。 谁能提供有关如何实现此目标的建议/建议? 问题答案: 在MySQL中执行此操作的最简单方法是创建一个名为的表,该表列出了您感兴趣的所有月份,并在表中使用LEFT JOIN。 但是,由于这主要是一个表示问题,因此通常很容易在您已经在运行的情况下运行查询并在客户端(例如PH

  • 问题内容: 这在PostgreSQL上有效吗? 问题答案: 是的,这在PostgreSQL中确实有效(假设“ date ”列为datatype )为什么不尝试一下呢? 标准的ANSI SQL格式为: 我更喜欢这种格式,因为它使内容更易于阅读(但与相同)。

  • 问题内容: 我最近了解到oracle具有对我来说非常有用的功能-因为设计者/实现者不太在意数据历史记录- 我可以查询记录的历史状态(如果它在oracle缓存中仍然可用),如下所示: 但是现在我需要检查范围内的历史数据。使用缓存是否有可能? 问题答案: 是的,像这样: 请注意,您可以走多远受UNDO_RETENTION参数的限制,通常为几小时而不是几天。

  • 问题内容: 我想从中选择记录,但是,每天都有很多价值,因为它们每15分钟保存一个值,所以我只希望每天有第一个或最后一个值。 表架构: 错误的SQL: 如果可能的话,我想一口气… 非常感谢。 编辑: 我的意思是,我每天都有一个查询,但是我只想从c中进行单个查询 EDIT2: 我有 64,260 条记录,执行和响应该查询需要很长时间,有时还会超时。 问题答案: 要获得每个日期的第一个条目,您可以做