Pra, kjo funksionon:
SELECT c.name AS country_name, c.population AS country_population, SUM(ci.population) AS city_population, ROUND(100*(SUM(ci.population)/c.population)) AS city_population_percent
FROM country AS c
JOIN city AS ci
ON c.code = ci.countrycode
WHERE c.continent = 'Europe'
GROUP BY c.name
Por më duhet të kap vetëm vlerat city_population_percent më të mëdha se 30, kështu që provoj këtë:
SELECT c.name AS country_name, c.population AS country_population, SUM(ci.population) AS city_population, ROUND(100*(SUM(ci.population)/c.population)) AS city_population_percent
FROM country AS c
JOIN city AS ci
ON c.code = ci.countrycode
WHERE c.continent = 'Europe'
**AND ROUND(100*(SUM(ci.population)/c.population)) > 30**
GROUP BY c.name
Dhe atëherë unë marr:
Kodi i gabimit 1111. Përdorimi i pavlefshëm i funksionit të grupit
Kjo do të thotë, dështon kur shtoj këtë kusht në WHERE
:
AND ROUND(100*(SUM(ci.population)/c.population)) > 30
group by
do të kthejë thjesht të dhëna të rastësishme që mund të mos jenë rezultati i saktë. 03.03.2014