我需要得到一个if语句按日期字段分组(名为VALIDTO(如果组中有任何null,则只返回一个null值或者在组中不存在null的情况下返回maximun。这应该有效,但它非常棘手,因为MAX、MIN和COUNT忽略空值:
test = sql_context.sql(""" select field1, field2,
if(MIN(VALIDTO) is null, null, MAX(VALIDTO)) as VALIDTO
from test_table
""")
非常感谢!
您可以通过获取该组中VALIDTO is null
的最大值来检查是否存在null:
select
field1, field2,
case when max(VALIDTO is null) = False then max(VALIDTO) end as VALIDTO
from test_table
group by field1, field2
嗯。如果任何值都是NULL
,我认为您希望validto
上的聚合函数返回NULL
。如果是,您可以使用case
:
(case when count(*) = count(validTo) then max(validTo)
end)