Documente Academic
Documente Profesional
Documente Cultură
Functii de grup
Functiile de grup returneaza o singura valoare pentru un grup sau set de linii dintr-un tabel. Putem
calcula astfel cea mai mare valoare dintr-un set de valori, putem determina numarul de inregistrari
ce respecta o anumita conditie.
TABELA VOTURI
TABELA JUDETE
Funcia COUNT(X)-determina numarul de valori ale lui x. Functia ignora campurile care sunt nule.
from voturi
COUNT(JUDET) COUNT(NUMAR_VOTURI)
39 37
Functia COUNT poate fi folosita si in combinatie cu clauza DISTINCT, pentru a numara doar valoarile
distincte dintr-un domeniu.
from voturi
COUNT(DISTINCTJUDET)
3
from voturi
from voturi
MAX(NUMAR_VOTURI)
514366
Ex: select max(100*numar_voturi/numar_alegatori)
where v.judet=j.cod_judet
MAX(100*NUMAR_VOTURI/NUMAR_ALEGATORI)
30,23065125
Am obtinut astfel cel mai mare procent obtinut de un candidat intr-un judet. Pentru a afisa si
candidatul si judetul folosim comanda:
where v.judet=j.cod_judet
Pentru a afla numarul total de voturi valabil exprimate in judetul Sibiu vom scrie comanda:
select sum(numar_voturi)
from voturi
where judet='SB'
SUM(NUMAR_VOTURI)
212112
Functia AVG(x)-determina media valorilor expresiei x.
select avg(100*numar_voturi/numar_alegatori)
AVG(100*NUMAR_VOTURI/NUMAR_ALEGATORI)
20,14404508
Pentru candidatul 13 avem urmatoarea situatie:
select avg(numar_voturi)
from voturi
where (candidat=13)
AVG(NUMAR_VOTURI)
100
Pentru a lua in calcul cele trei linii cu inregistrarile candidatului 13 introducem comanda:
select avg(NVL(numar_voturi,0))
from voturi
where (candidat=13)
AVG(NVL(NUMAR_VOTURI,0))
33,33333333
Daca dorim sa calculam numarul total de voturi obtinut de fiecare candidat in toata tara, cu ce am
studiat pana acum putem proceda astfel:
select sum(numar_voturi)
from voturi
where (candidat=1)
SUM(NUMAR_VOTURI)
608608
select candidat, sum(numar_voturi) AS "TOTAL VOTURI"
from voturi
GROUP BY candidat
CANDIDAT TOTAL
VOTURI
1 608608
6 19821
11 30236
13 100
2 3151
4 152465
5 35537
8 6675
3 66991
7 33846
9 8447
10 4009
12 632543
Procentul mediu obtinut de catre fiecare candidat:
where v.judet=j.cod_judet
GROUP BY candidat
CANDIDAT TOTAL
VOTURI
1 22,65622956
6 0,681443015
11 0,971618392
13 0,027519401
2 0,134248336
4 5,506383429
5 1,1701996
8 0,224347948
3 3,412553482
7 1,070463446
9 0,447406194
10 0,166617476
12 20,14404508
MAX(SUM(NUMAR_VOTURI))
632543