我有 SQL 视图
data_start
有 3 列
CALMONTH, COSTCENTER, Kontonummer
样本数据:
CALMONTH COSTCENTER Kontonummer
-------------------------------
202301 A AA
202302 A AB
202101 B BA
202012 B BB
202204 C CA
202312 C CB
...
如何仅保留每个
COSTCENTER
组的行,其中 CALMONTH
最大值大于特定值。
例如,我只想保留
COSTCENTER
,其中至少有一个 CALMONTH
大于 202201。
输出应该是:
CALMONTH COSTCENTER Kontonummer
-------------------------------
202301 A AA
202302 A AB
202204 C CA
202312 C CB
...
我尝试了这个SQL语句:
SELECT
"CALMONTH", "COSTCENTER", "Kontonummer"
GROUP BY
("COSTCENTER") %>%
SERIES_FILTER(max("CALMONTH") > 202201) %>%,
FROM "data_start"
但这会导致错误:
错误无关 BY,期待“,”,FROM
SQL 位于 SAP HANA CLOUD 中,称为 SQLSCRIPT。
这可以使用
group by
和 having
来完成:
select t.*
from data_start t
inner join (
select COSTCENTER
from data_start
group by COSTCENTER
having max(CALMONTH) > 202201
) as s on s.COSTCENTER = t.COSTCENTER;