Sunteți pe pagina 1din 14

CURS BAZE DE DATE

27.05.2020

funcții agregate, clauza group by și clauza having

Ce facultate urmează studenții născuți în anul 1999, care în ziua de 27.05.2020


au împrumutat cărți care nu aparțin domeniilor contabilitate și informatică, al
căror preț unitar este cuprins între 32 și 97, iar anul apariției este unul din anii
2011, 2018 sau 2020.

domeniu IN (“contabilitate”, “informatica”)


functii agregat

f(x)
x – argumentul funcției

SUM(), MIN(), MAX(), AVERAGE(), COUNT()


Câte cărți sunt din domeniu informatică? count()

Numar carti
????

SELECT COUNT(*) AS [NUMAR CARTI]


FROM CARTE
WHERE DOMENIU=”INFORMATICA”

CATI STUNDETI DE LA STIINTE ECONOMICE S-AU NASCUT IN LUNA


MARTIE 1999

SELECT COUNT(*) AS NUMAR


FROM STUDENT
WHERE FACULTATE =”STIINTE ECONOMICE” AND [DATA NASTERII]
BETWEEN 01/03/1999 AND 31/03/1999
CATI STUDENTI AU IMPRUMUTAT CARTEA CU TITLUL BAZE DE
DATE

SELECT COUNT(*) AS NUMAR


FROM STUNDET S INNER JOIN STUDCARTE SC ON
S.[NUMAR MATRICOL]=SC.[NUMATRICOL] INNER JOIN CARTE C ON
SC.[COTA CARTE]=C.[COTA CARTE]
WHERE TITLU=”BAZE DE DATE”

SA SE AFLE VALOAREA TOTALA A BURSELOR INCASATE DE


STUDENTII DIN TARGOVISTE

SELECT SUM([SUMA INCASATA]) AS TOTAL


FROM STUDENT S INNER JOIN BURSA B ON
S.[NUMAR MATRICOL]=B.[NUMAR MATRICOL] INNER JOIN
LOCALITATE L ON S.[COD LOCALITATE]=L.[COD ,LOCALITATE]
WHERE [NUME LOCALITATE]=”TARGOVISTE”
SA SE AFLE CEL MAI MARE PRET, RESPECTIV CEL MAI MIC SI CEL
MEDIU PENTRU TOATE CARTILE SCRISE DE AUTORI STRAINI.

SELECT MAX([PRET UNITAR]) AS MARE,


MIN([PRET UNITAR]) AS MIC,
AVG([PRET UNITAR]) AS MEDIU
FROM AUTOR A INNER JOIN AUTOR CARTE AC ON
A.[COD AUTOR]=AC.[COD AUTOR] INNER JOIN CARTE C ON
AC.[COTA CARTE]=C.[COTA CARTE]
WHERE NATIONALITATE<>”ROMAN”
GRUPAREA TUPLURILOR

CLAUZA GROUP BY

SA SE AFLE VALOAREA MEDIE A BURSELOR PE FIECARE


FACULTATE IN PARTE

SELECT FACULTATE, AVG([SUMA INCASATA]) AS MEDIE


FROM STUDENT S INNER JOIN BURSA B ON S.[NUMAR
MATRICOL]=B.[NUMAR MATRICOL]
GROUP BY FACULTATE
SA SE AFLE SUMA TOTALA INCASATA CA BURSE DE STUDENTII
FACULTATII DE STIINTE ECONOMICE, GRUPATA PE JUDETELE DE
RESEDINTA ALE ACESTORA

SELECT JUDET, SUM([SUMA INCASATA]) AS TOTAL


FROM BURSA B INNER JOIN STUDENT S ON
B.[NUMAR MATRICOL]=S.[NUMAR MATRICOL] INNER JOIN
LOCALITATE L ON S.[COD LOCALITATE]=L.[COD LOCALITATE]
GROUP BY JUDET
WHERE FACULTATE=”STIINTE ECONOMICE”
SA SE AFLE PRETUL MEDIU AL CARTILOR PE FIECARE DOMENIU IN
PARTE.

SELECT DOMENIU, AVG([PRET UNITAR]) AS MEDIU


FROM CARTE
GROUP BY DOMENIU

CLAUZA HAVING

WHERE DE LA NIVEL DE GRUP


CE TIP DE BURSA ARE TOTALUL INCASARILOR MAI MARE DE 5000
LEI PENTRU STUDENTII DE LA FSE

SELECT [TIP BURSA], SUM([SUMA INCASATA]) AS TOTAL


FROM BURSA
GROUP BY [TIP BURSA]
HAVING SUM([SUMA INCASATA])>=5000
WHERE FACULTATE=”STIINTE ECONOMICE”

CARE SUNT EDITURILE PENTRU CARE VALOAREA TOTALA A


CARTILOR DEPASESTE 100000 LEI.

SELECT *

SELECT EDITURA, SUM([NUMAR EXEMPLARE]*[PRET UNITAR]) AS


TOTAL
FROM CARTE
GROUP BY EDITURA
HAVING SUM([NUMAR EXEMPLARE]*[PRET UNITAR])>=1000000
MIERCURI 03.06.2020 ORA 10 SE VA DESCHIDE EXAMENUL PENTRU
LUCRARE 2 (10% DIN NOTA FINALA)

MARTI 09.06.2020 ORA 10 SE VA DESCHIDE EXAMENTUL PENTRU


DISCIPLINA BAZE DE DATE (40% DIN NOTA FINALA)

10% LUCRAREA 2
VOR FI 10 INTREBARI A CATE 1 PCT FIECARE DIN SQL

EX FINAL 40%
VOR FI 5-6 INTREBARI DIN ALGEBRA RELATIONALA 5-6 INTREBARI
DIN SQL PENTRU ACEEASI BAZA DE DATE.
Care sunt studenţii Facultăţii de Ştiinţe Economice, specializarea Contabilitate şi
Informatică de Gestiune?

* SE FOLOSTE IN CLAUZA SELECT

FORMATUL GENERAL AL LUI SELECT ESTE

SELECT C1, C2, C3, ……Cn

C1 C2 C3 …. …. Cn
daca C1, C2, C3, ……Cn lipseste si in locul lor apare * adica SELECT * atunci
in rezultat vor fi incluse TOATE CAMPURILE TABELOR DIN FROM

care sunt cartile … select *


care sunt autorii
care sunt studentii…

care este titlul cartilor SELECT TITLU


CARE ESTE NATIONATIONALITATEA AUTORILOR – SELECT
NATIONALITATE
CARE ESTE DATA STUD --…. SELECT DATA NASTERII

SELECT *
FROM
WHERE

S-ar putea să vă placă și