如何创建一个新的列,显示表中的最大日期和行中的日期之间的差异?



我需要两列:1显示'日期'和其他显示'最大日期在表-日期在行'。我一直在'datediff'列中得到零,并认为嵌套的选择可以工作。

SELECT date, DATEDIFF(max_date, date) AS datediff
(SELECT MAX(date) AS max_date
FROM mytable)
FROM mytable
GROUP BY date

目前从上面的代码中得到这个错误:输入不匹配'('期待{,';'}(第2行,pos 2)正确的格式是:

date    |   datediff
--------------------------
2021-08-28  |     0
2021-07-26  |     28
2021-07-23  |     31
2021-08-11  |     17

如果您想要日期差异,您可以使用:

SELECT date, DATEDIFF(MAX(date) OVER (), date) AS datediff
FROM mytable
GROUP BY date

您可以使用解析函数MAX() Over()

SELECT date, MAX(date) OVER() - date FROM mytable;

在sqlfiddle上试过了

相关内容

  • 没有找到相关文章

最新更新