可以在HAVING子句中使用DATE_PART吗?

时间:2017-07-29 22:27:27

标签: sql

执行以下SQL查询时,似乎HAVING子句不会产生任何影响。

SELECT
   day_of_week,
   fc,
   gl,
   CASE WHEN COUNT(inbound_allocation_factors) IS null THEN 0 ELSE count(inbound_allocation_factors) END AS num_of_factors,
   DATE(request_datetime) AS date
FROM 
     allocationworkflow_with_gl
GROUP BY day_of_week,fc,gl,date
HAVING day_of_week = DATE_PART(dw,MAX(request_datetime))

request_datetime是时间戳,day_of_week是从0到6的整数,表示星期日到星期六。顺便说一句,我使用的是Redshift。谁能帮助我?非常感谢!

1 个答案:

答案 0 :(得分:0)

您的问题不是datepart()。您的问题是day_of_week没有聚合。您可以通过执行以下操作进行验证:

HAVING DATE_PART(dw, MAX(request_datetime)) = 1

我不确定你真正想做什么,但这回答了你当前的问题。