Pocetnicki

Veliki pozdrav za pocetak.
Drago mi je da postoji ovakav forum :klanjamse
Na pocetku sam ucenja o BP.
Naime, evo jedne jednostavne stvari, tj.zadatka:

CREATE TABLE Zaposleni(
ID INTEGER NOT NULL,
Ime VARCHAR (25) NOT NULL,
Prezime VARCHAR (25) NOT NULL,
JMBG VARCHAR (13) NOT NULL,
UlicaIBroj VARCHAR (25) NOT NULL,
MestoStanovanja VARCHAR (25) NOT NULL,
DatumRodjenja DATE,
MestoRodjenja VARCHAR (50),
Telefon VARCHAR (20),
StrucnaSprema VARCHAR (20),
BracniStatus VARCHAR (20),
Pol VARCHAR (10),
MaxPlata NUMERIC (10),
ProsecnaPlata NUMERIC (10));

Potrebno je napisati SQL upit koji će prikazati naziv svakog bračnog statusa u kom se nalaze bar 4 zaposlena.

Ok, do sada sam skapirala da pocinjem ovako:

SELECT BracniStatus
FROM Zaposleni

Kako dalje?
Molila bih i da mi napisete objasnjenje za taj nastavak.

Pozz

Malo pitanje uz ovo “bar 4 zaposlena”. Na šta se zaposleni odnose, tj da li je taj broj tu nedje u tabeli ili se to gleda u nekoj drugoj?

U MS SQL-u bi to bilo ovako:

SELECT TOP 5 BracniStatus, COUNT()
FROM Zaposleni
GROUP BY BracniStatus
HAVING COUNT(
) >= 4

Objašnjenje kažeš?

Treba ići od početka:

a) SELECT BracniStatus FROM Zaposleni
Ovime ćeš dobiti popis bračnih statusa svih zaposlenika.
Primjer:
udana
udana
oženjen
rastavljen
udana

b) SELECT BracniStatus FROM Zaposleni GROUP BY BracniStatus
Ovo je jedan korak bliže jer ćeš dobiti samo ovo:
udana
oženjen
rastavljen
neudana

c) SELECT BracniStatus, COUNT(*) FROM Zaposleni GROUP BY BracniStatus
Da naše grupiranje bude korisno, stavljen je COUNT koji broji slogove.
Naš rezultata je npr:
udana, 15
oženjen, 43
rastavljen, 18
neudana, 2

d) SELECT BracniStatus, COUNT() FROM Zaposleni GROUP BY BracniStatus HAVING COUNT() >=4
Ako je shvaćeno sve ovo prije, HAVING je jednostavan jer se koristi kod agregatnih funkcija. U prijevodu, “daj mi sve … koji count(*) ima >= 4”

e) SELECT TOP 5 BracniStatus, COUNT() FROM Zaposleni GROUP BY BracniStatus HAVING COUNT() >=4
Vraća prvih 5 bračnih statusa kojima je count(*) >= 4

Nadam se da nisam pisao bez veze. :zub:

U MySQL nema ovaj top tako da bi u mysql trebalo biti LIMIT

SELECT BracniStatus, COUNT()
FROM Zaposleni
GROUP BY BracniStatus
HAVING COUNT(
) >= 4 LIMIT 5

Edit:

Nisam odma na početku skužio za ovaj bračni status tak da zanemari prvi post :slight_smile:

E pa ovo je super!!!

Sve je mnogo jasnije.

Hvala puno :klanjamse

Sa dve siromasne lekcije o SQL-u su nam dali ovaj zadatak.

Spomenuto je skoro sve gore navedeno ali nije tako lepo objasnjeno zasto je sta gde stavljeno, ali… eto nadjoh Vas pa… Yupiiiiiii.

Jos jednom hvala puno na zavrsenom zadatku i jos vaznijem mi objasnjenju svega.

Veliki, veliki pozdrav!!!