如何使用 SQL 获取连续日期之间的最大差异

发布于 2025-01-10 13:25:38 字数 1591 浏览 1 评论 0原文

日期 1日期 2日期 3日期 4LineCountMonth_Gap
2020-01-012019-10-012019-09-061
2020-01-012019-10-012019-09-132019-09-0620
2020- 01-012019-10-012019-08-132019-09-0621

如果 LineCount 为 1,则 Month_Gap 应为 (Date1 & Date1) 之间的最大月份差异。日期3)和(日期2&日期3)。 Date3 始终位于 Date1 和 Date2 之间。

在本例中,输出应为 (2020/01/01 - 2019/09/06) 和 (2019/10/01 - 2019/09/06) 之间的最大月份差异,即 3 个月:

Date 1Date 2日期 3日期 4LineCountMonth_Gap
2020-01-012019-10-012019-09-0613
2020-01-012019-10-012019-09-132019-09-0620
2020-01-012019-10-012019-08-132019-09-0621

我正在尝试这样的事情,但是不知道该怎么做 - CASE WHEN LineCount = 1 THEN MAX(DATE_DIFF(.....),我猜这是行不通的。

Date 1Date 2Date 3Date 4LineCountMonth_Gap
2020-01-012019-10-012019-09-061
2020-01-012019-10-012019-09-132019-09-0620
2020-01-012019-10-012019-08-132019-09-0621

If the LineCount is 1, then Month_Gap should be the maximum month difference between (Date1 & Date3) and (Date2 & Date3). Date3 will always be in between Date1 and Date2.

In this Case, the output should be the max month difference between (2020/01/01 - 2019/09/06) and (2019/10/01 - 2019/09/06), which is 3 months:

Date 1Date 2Date 3Date 4LineCountMonth_Gap
2020-01-012019-10-012019-09-0613
2020-01-012019-10-012019-09-132019-09-0620
2020-01-012019-10-012019-08-132019-09-0621

I was trying something like this but not sure how to go about it -
CASE WHEN LineCount = 1 THEN MAX(DATE_DIFF(.....), which won't work I guess.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

扶醉桌前 2025-01-17 13:25:38

您应该使用的模式是

SELECT TIMESTAMPDIFF("MONTH", LEAST(date1,date2,date3,date4), GREATEST(date1,date2,date3,date4)) as `maximum_difference`;

这将简单地浏览您的列,找到最小和最大,并返回结果。

The pattern you should use is

SELECT TIMESTAMPDIFF("MONTH", LEAST(date1,date2,date3,date4), GREATEST(date1,date2,date3,date4)) as `maximum_difference`;

This will simply look through your columns, find the least and greatest, and return the result.

一刻暧昧 2025-01-17 13:25:38
    SELECT 
    CASE WHEN LineCount = 1 THEN GREATEST(DATE_DIFF('month', Date3, Date1), 
    DATE_DIFF('month', Date3, Date2)) END AS Month_Gap
    SELECT 
    CASE WHEN LineCount = 1 THEN GREATEST(DATE_DIFF('month', Date3, Date1), 
    DATE_DIFF('month', Date3, Date2)) END AS Month_Gap
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文