如何创建一个新列来显示 table 中的最大日期与行中的日期之间的差异?

How do I create a new column showing difference between maximum date in table and date in row?

我需要两列:1 列显示 'date',另一列显示 'maximum date in table - date in row'。 我一直在 'datediff' 列中得到一个零,并认为嵌套的 select 会起作用。

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

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

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

Tried this here on sqlfiddle

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

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