katalyn:Cerinţa este: "Cea mai populata unitate teritoriala din fiecare tara, populatia ei si tara de care apartine"
În fine, sper că Alex a fost lămurit indiferent de care este cerinţa corectă.
Acest enunt este eronat pentru ca:
[1] expresia este "unitate teritoriala" este neclară: UT = J sau UT = L sau UT = J + L
[2] pp. ca UT se refera la - virgula - localitati atunci pot exista (cel putin teoretic) mai multe L din aceeasi T cu aceeasi populatie (nr. locuitori) si aceasta populatia sa fie maxima la nivelul tarii respective:
LOC_A --- TARA_X --- 100.000
LOC_B --- TARA_X --- 100.00
Care sunt cele mai populate localitati (nr. maxim de locuitori) din fiecare tara, populatia lor si tara de care apartin ?
In acest caz solutia este cea prezentata anterior (s-a avut in vedere inc. faptul ca la nivelul unei tari pot exista m. multe localitati cu acelasi nr. de locuitori, nr. de locuitori fiind maxim):
<solutie>
SELECT T.nume_tara, J.nume_judet, L.nume_loc, MAX(L.nr_locuitori) AS Nr
FROM Localitate L INNER JOIN Judet J ON L.id_judet = J.id_judet
INNER JOIN Tara T ON J.id_tara = T.id_tara
GROUP BY T.id_tara, L.id_loc , T.nume_tara, J.nume_judet, L.nume_loc
HAVING MAX(L.nr_locuitori) >=
ALL(SELECT LSQ.nr_locuitori
FROM Localitate LSQ INNER JOIN Judet JSQ ON LSQ.id_judet = JSQ.id_judet
WHERE JSQ.id_tara = T.id_tara )
</solutie>