【问题标题】:DATEDIFF on Dates in Multiple Rows多行日期的 DATEDIFF
【发布时间】:2018-07-09 00:47:05
【问题描述】:

我正在尝试查找餐厅客户的首次访问和回访之间的天数,但由于首次访问和回访的日期不同,我在执行此操作时遇到了一些问题行。数据很敏感,所以我不能在这里发布,但它看起来像这样:

如果 DATEDIFF 不是这里的最佳选择,有人可以建议其他功能吗?

【问题讨论】:

  • 至少花时间以易于复制的格式发布您的数据。
  • 您使用的是什么 SQL Server 版本?
  • 道歉萨尔曼,我很着急,我试图发布的所有文本表都乱七八糟。另外,我使用的是 SQL Server 17.5

标签: sql sql-server date datetime datediff


【解决方案1】:

您可以使用 group by 汇总数据。 . .假设每个客户每种类型都有一行(这与您的示例数据一致):

select customer_id, min(initial_visit), max(return_visit)
from t
group by customer_id;

然后您可以计算差异。这取决于数据库。有些支持特殊功能。有些只是使用-。您应该查阅您正在使用的数据库的文档。

【讨论】:

  • 感谢您的回复。不过,我不确定这是否适用于 Customer_ID 2,因为它错过了第一次回访。如果我试图找到所有在 20 天内返回的客户,我认为这种方法会错过客户 2,因为差异是 3/15 - 2/15。
  • @GhostBen 。 . .您在评论中指定的内容不在问题中。这回答了您提出的问题。我建议您问另一个问题,提供更合适的样本数据、期望的结果以及对您要完成的目标的良好解释。
猜你喜欢
  • 1970-01-01
  • 2022-10-17
  • 1970-01-01
  • 2021-09-19
  • 2021-08-01
  • 2014-04-13
  • 2021-10-16
  • 2020-04-21
  • 1970-01-01
相关资源
最近更新 更多