如何创建一个新列来显示 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;
如果你想要日期差异,你可以使用:
SELECT date, DATEDIFF(MAX(date) OVER (), date) AS datediff
FROM mytable
GROUP BY date
我需要两列: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;
如果你想要日期差异,你可以使用:
SELECT date, DATEDIFF(MAX(date) OVER (), date) AS datediff
FROM mytable
GROUP BY date