Читайте также: |
|
GROUP BY сөйлемі. HAVING сөйлемі. ORDER BY сөйлемі.
GROUP BY толықтай өріс мәні арқылы табылатын агрегаттық функцияның барлық сериясы қолданылады. Бұл кезде, әрбір топтағы барлық жол сол snum өріс мәнінен тұрады, және MAX функциясы әрбір топқа жекелей қолданылады. Бұл GROUP BY қолданылатын өріс мәні, ол еңгізу тобында бір ғана мән қабылдайды, агрегаттық функцияға ұқсас. Нәтижесінде агрегат пен өрістерді біріктіреді.Сол сияқты көпсандық GROUP BY өрісін қолдануға болады. Мысалы, егер сіз әрбір сатушының күніне алатын жалақысын есептеу керек болсын. Ол үшін сіз сатушының әр күнде алатын жалақысын біріктіріп, осылардың әрбіріне MAX функциясын қолданамыз.(төмендегідей):
SELECT snum, odate, MAX ((amt)) FROM Orders GROUP BY snum, odate;
Айталық, алдыңғы мысалда, сіз $3000.00 аспайтын максималды сумманы алдық. Сіз агрегаттық функцияны WHERE қосымшасында қолдана алмаймыз (егер сіз келесі сұранысты қолдансаңыз), өйткені предикаттар бір жолдық терминде бағаланады, агрегаттық функция жолдық топ терминімен бағаланады. Бұл дегеніміз сіз төмендегіге ештеңе істей алмайсыз:SELECT snum, odate, MAX (amt) FROM Oreders WHERE MAX ((amt)) > 3000.00
GROUP BY snum, odate;
Бұл қолайсыз интерпретация ANSI-дан ауытқу болы табылады. $3000.00 асқан максималдық бағасын көру үшін, сіз HAVING қосымшасын қолданамыз.
HAVING қосымшасы қолданылатын енгізілген топты жою үшін критерииді қолданады.
HAVING сөйлеміндегі аргументтер GROUP BY командасында қолданылатын SELECT сөйлеміндегі ережелермен бағынады.Олар шығару тобына бір мағына беру керек.Келесі командаға тыйым салынады.
ORDER BY сонымен қатар GROUP BY-мен бірге топтарды реттеу үшін қолданыла алады. Егер де солай болса, ORDER BY әрдайым соңғы болып келеді. Міне, соңғы тараудан алынған ORDER BY ұсынысымен толықтырылған мысал. Нәтиже топтастырылудан бұрын топтардың реті еркін болды; енді біз топтарды бір тізбекпен орналастырамыз:
SELECT snum, odate, MAX (amt) FROM Orders
GROUP BY snum, odate GROUP BY snum;
ORDER BY мүмкіндігінің негізгі мақсаттарының бірі – сізге GROUP BY-ды нәтиже бағандарымен, сонымен бірге кесте бағандарымен бірге қолдануға мүмкіндік беру. Агрегатты функция, тұрақтылар немесе өрнектер көмегімен құрылған бағандар SELECT ұсынысының сұранысында GROUP BY-мен бірге қолдануға абсолютті түрде жарамды. Мысалы, 7.8 суретте көрсетілгендей біздің әрбір сатушымыздың ретін санайық және нәтижесін кемімелі ретпен көрсетейік:
SELECT snum, COUNT (DISTINCT onum) FROM Orders
GROUP BY snum ORDER BY 2 DESC;
Бір-біріне салынған сұраныс. Бір-біріне салынған сұраныстың нәтижесімен салыстыру. Жату-жатпауды тексеру. Бар-жоғын тексеру. Бейнелеу.
INSERT. DELETE. UPDATE.
Дата добавления: 2015-01-29; просмотров: 165 | Поможем написать вашу работу | Нарушение авторских прав |