我写了这个函数
CREATE OR REPLACE FUNCTION num_gettoni2
(
cf_parlamentare IN parlamentari.cf %TYPE
)
RETURN SYS_REFCURSOR
AS
my_cursor SYS_REFCURSOR;
BEGIN
OPEN my_cursor FOR
SELECT l.id AS leg,
COUNT(*) - lead(COUNT(*), 1, 0) over (order by l.datainizio) AS ct
FROM legislature l, partecipazioni i, parlamentari p
WHERE i.sedute_data >= l.datainizio
AND p.cf = i.parlamentare
AND p.cf = cf_parlamentare
group by l.datainizio, l.id order by ct;
RETURN my_cursor;
END num_gettoni2;
这是输出
LEG | CT
---- | ---
14 | 0
15 | 0
16 | 0
17 | 1
18 | 2
有没有办法只显示ct值大于0的元组?
答案 0 :(得分:2)
像这样吗?
OPEN my_cursor FOR
select leg, ct
from (-- your current query
SELECT l.id AS leg,
COUNT(*) - lead(COUNT(*), 1, 0) over (order by l.datainizio) AS ct
FROM legislature l, partecipazioni i, parlamentari p
WHERE i.sedute_data >= l.datainizio
AND p.cf = i.parlamentare
AND p.cf = cf_parlamentare
group by l.datainizio, l.id order by ct
)
where ct > 0;