SQL 已售票 - 最近 30 天 - 使用 Where 或 Having?

SQL Tickets sold - Last 30 Days - use Where or Having?

对于从当天算起的最近 30 天内售出的航线,每条航线每天售出多少张票?

SELECT COUNT(TICKET_ID) NUMBER_TICKETS, ROUTE_CODE, FLIGHT_DATE 
FROM TICKETS 
WHERE (DAYS(CURRENT DATE)- DAYS(FLIGHT_DATE))<=30
GROUP BY ROUTE_CODE, FLIGHT_DATE

这应该是 WHERE 还是 HAVING?我不确定哪种方式是正确的?

您想在 WHERE 中找到它。

这是理解这一点的最佳方式 --

在 GROUP BY 之前使用 WHERE 子句

在 GROUP BY 之后使用 HAVING 子句

所以 -- 您想要对过去 30 天内的项目进行分组 -- 这发生在分组之前。

哪里是正确的命令,考虑使用“datediff”来计算 30 天

WHERE 子句用于指定过滤记录的条件在进行任何分组之前 HAVING 子句用于指定从组

中过滤值 的条件

在这种情况下,where 子句用于过滤条件,而不是组。 你应该使用“having”,例如,如果你想检查 ticket_id.