Netezza SQL语句根据星期几返回count或null
我是SQL的初学者。我试图确定是否有一种方法可以编写一条SQL语句,该语句将在一周的某些天返回空值,并在一周的其他天返回计数。我不能使用脚本(我使用的接口只允许我执行一条语句) 逻辑是这样的:Netezza SQL语句根据星期几返回count或null,sql,netezza,Sql,Netezza,我是SQL的初学者。我试图确定是否有一种方法可以编写一条SQL语句,该语句将在一周的某些天返回空值,并在一周的其他天返回计数。我不能使用脚本(我使用的接口只允许我执行一条语句) 逻辑是这样的: if max(as_of_date) is a Saturday or Sunday, then return null Else select count(*) from table where (etc). 我假设,由于_OF_DATE是源表中的一列,因此输出应该只有一行,如果源表中的一行包含具有相
if max(as_of_date) is a Saturday or Sunday, then return null
Else select count(*) from table where (etc).
我假设,由于_OF_DATE是源表中的一列,因此输出应该只有一行,如果源表中的一行包含具有相关日期的记录,那么它将返回非null。请详细说明问题(希望输入/输出更好)
整个“if-else”构造只在一行中有意义(在sql中称为CASE),但计数只在多行中有意义。请提供输入行和所需输出行的示例集,我们当然可以提供帮助,谢谢。不幸的是,我试图使用SQL来实现调度软件真正应该做的事情。所需的逻辑基本上是这样的:如果date_DIM表中的Max(as_of_date)是星期六或星期日,则返回null,否则返回现有SQL的结果(这是一个数字——一个计数)。这是一个“单个数字”计数表中的行,而不是as_of_date列,或者as_of_date是“当前_date”吗?我有点说错了。实际逻辑是从另一个表中获取计数,该表与日期dim表相连。基本上从表a中选择计数(*),其中表a.as-of-date=date-dim.date和date-dim.last-process-date='Y'
Select
case when cnt>0
then cnt
end
from
( select count(*) cnt
from THE_TABLE
where EXTRACT(dow FROM AS_OF_DATE) not in (1,7)
) x