繁体   English   中英

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

[英]How to get Maximum Difference between Dates in a row using SQL

日期 1 日期 2 日期 3 日期 4 线数 月_差距
2020-01-01 2019-10-01 2019-09-06 1个
2020-01-01 2019-10-01 2019-09-13 2019-09-06 2个 0
2020-01-01 2019-10-01 2019-08-13 2019-09-06 2个 1个

如果LineCount为 1,则Month_Gap应该是 (Date1 & Date3) 和 (Date2 & Date3) 之间的最大月份差。 Date3 将始终在 Date1 和 Date2 之间。

在这种情况下,output 应该是 (2020/01/01 - 2019/09/06) 和 (2019/10/01 - 2019/09/06) 之间的最大月差,即 3 个月:

日期 1 日期 2 日期 3 日期 4 线数 月_差距
2020-01-01 2019-10-01 2019-09-06 1个 3个
2020-01-01 2019-10-01 2019-09-13 2019-09-06 2个 0
2020-01-01 2019-10-01 2019-08-13 2019-09-06 2个 1个

我正在尝试这样的事情,但不确定如何解决 go - CASE WHEN LineCount = 1 THEN MAX(DATE_DIFF(.....),我猜这是行不通的。

您应该使用的模式是

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

这将简单地查看您的列,找到最小和最大的列,然后返回结果。

    SELECT 
    CASE WHEN LineCount = 1 THEN GREATEST(DATE_DIFF('month', Date3, Date1), 
    DATE_DIFF('month', Date3, Date2)) END AS Month_Gap

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM