85
GROUP BY KOD_kafedru
having count(dolgnost) > 1
HAVING фразасында бағандарды қолдана топтастыру.
Сұраныс 6. Бір немесе одан да көп профессорлар жұмыс істейтін
математика және информатика факультеті кафедраларының атауларын шығару.
Сондай-ақ профессорлардың санын және олардың жиынтық жалақысын
көрсету.
SELECT d.Name_kafedru, Count(*), SUM(t.salary + t.Rise)
FROM FACULTET f, KAFEDRA d,
TEACHER t
WHERE f.KOD_FACULTETA = d.KOD_FACULTETA AND
d.KOD_kafedru = t.KOD_kafedru AND
LOWER(f.Name_faculteta) = 'математиктер және информатиктер' AND
LOWER(t.Dolgnost ) = 'профессор'
GROUP BY d.Name_kafedru
HAVING COUNT(*) > 0;
GROUP BY фразасынсыз HAVING фразасы
Бұл жағдайда SELECT сөз тіркестері тізімінде олармен тек
константаларды, агрегаттық
функциялар мен өрнектерді ғана пайдалануға
болады.
Сұраныс 7. Егер барлық оқытушылардың жиынтық жалақысы 15 000-нан
асса, олардың ең төменгі мөлшерлемесін, ең жоғарғы үстемесін және жиынтық
жалақысын шығарыңыз.
SELECT MIN(Salary), MAX(Rise), SUM(Salary + Rise)
FROM TEACHER
HAVING SUM(Salary + Rise) > 15000;
WHERE
фразасы бар болса, алдымен оның шартына сәйкес жолдарды
іріктеу жүргізіледі, содан кейін ғана HAVING фразасының шарты
қолданылады.
Сұраныс 8. Егер барлық ассистенттердің жиынтық жалақысы 2500-ден
асса, олардың орташа ставкасын, орташа үстемесін және жиынтық жалақысын
шығарсын.
SELECT AVG(Salary), AVG(Rise), SUM(Salary + Rise)
FROM TEACHER
WHERE LOWER(Dolgnost ) = 'ассистент'
HAVING SUM(Salary + Rise) > 2500;
Қорытынды жолдарды сұрыптау
Біз
атап өткендей, Мәліметтер қорының кестелеріндегі жолдар ретсіз.
Сондай-ақ, сұраныстың қорытынды кестесінің жолдары реттелмеген, бірақ
оларды SELECT сөйлемінде реттеу үшін ORDER BY фразасын пайдалануға
86
болады. Ол онда көрсетілген бағандардың (және бағандардың үстіндегі
өрнектердің) мәні бойынша қорытынды
сұраныс кестесі жолдарын
сұрыптайды.
Бұл фразаның синтаксисі келесі:
Достарыңызбен бөлісу: