我想创建函数或 View ,每月显示特定年份的一些信息。
CREATE OR REPLACE VIEW name_view AS
SELECT d_name,
SUM("Jan") "Jan",
SUM("Feb") "Feb"
...
FROM (
select distinct d_name,
COUNT(CASE WHEN EXTRACT (MONTH FROM h_date) = '01' THEN query_string ELSE NULL END) "Jan",
COUNT(CASE WHEN EXTRACT (MONTH FROM h_date) = '02' THEN query_string ELSE NULL END) "Feb",
..
from h
inner join d on h_d = d_id
WHERE EXTRACT (YEAR FROM h_date) = '2015'
GROUP BY d_name) sub query
GROUP BY d_name
如果没有
,我怎么能这样调用 View 呢?WHERE EXTRACT (YEAR FROM h_date) = '2015'
但与通话年份有关?例如
SELECT * FROM name_view ('2015')
最佳答案
您应该在 SELECT 中使用 YEAR,当您从您使用 WHERE year = 2015 的 View 中进行 SELECT 时。
CREATE OR REPLACE VIEW name_view AS
SELECT d_name,
SUM("Jan") "Jan",
SUM("Feb") "Feb",
YEAR,
....
View 的使用:
SELECT *
FROM name_view
WHERE year = '2015';
关于sql - 使用参数调用函数或 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30211090/