WITH view_local_1 AS (SELECT ... )
[, view_local_2 AS (SELECT ... )] ...
SELECT ...(se pot utiliza: view_local_1, view_local_2, ...)
Exemplu:
with
v1 as (select sectia,nrmatricol,max(nota) notamax,nrcredite
from rezultate where nota>4 group by sectia,nrmatricol,nrcredite
),
v2 as (select sectia,nrmatricol,to_char(sum(notamax*nrcredite)/sum(nrcredite),'99.99') media,
sum(nrcredite) nrcredite,count(*) nrdisc
from v1
group by sectia,nrmatricol
)
select s.sectia,s.nrmatricol,nume,prenume,media,nrcredite,nrdisc
from studenti s inner join v2 on s.sectia=v2.sectia and s.nrmatricol=v2.nrmatricol;
Referinţe: