如何查询在创建时使用 YEAR() 函数的 SQL 视图?

How can I query an SQL view that utilizes the YEAR() function in creation?

我有一个任务要查询我刚刚从 table 创建的视图,该视图使用 SQL YEAR() 函数来获取假设员工被雇用的日期(此数据库中的所有信息都是出于学术目的而非合法信息而创建的)。我能够毫无问题地创建视图,但是在创建后尝试查询视图时只会出现错误。

table 视图的片段创建自:

CREATE VIEW HiresByYear AS
SELECT YEAR(hire_date), COUNT(employee_id)
FROM employees
GROUP BY YEAR(hire_date)
ORDER BY YEAR(hire_date) ASC;

这是我用来从上面的 table 创建视图的查询,它生成的视图如下所示:

我的问题是如何根据视图中的 YEAR(hire_date) 列进一步查询此视图?我试过这个查询(我知道这不是查询视图的正确方法,但这是我试图实现的最终目标):

SELECT *
FROM HiresByYear
WHERE YEAR(hire_date) = 1997;

以上仅导致错误,因为 SQL 无法找到 'hire_date' 列。有什么建议吗?

为清楚起见编辑:我需要在创建视图时使用 YEAR() 函数,我的最终目标是具体查看 1997 年雇用了多少员工。

您需要为您 select 的列分配别名。这些成为视图中的列名称。

CREATE VIEW HiresByYear AS
    SELECT YEAR(hire_date) AS year, COUNT(employee_id) AS count
    FROM employees
    GROUP BY year
    ORDER BY year ASC;

SELECT *
FROM HiresByYear
WHERE year = 1997;