бағанның қалған ерекше мәндеріне ғана. COUNT (*) нҧсқасы - COUNT
функциясын
пайдаланудың ерекше жағдайы, оның мақсаты бос,
қайталанатын немесе кез келген басқа мәндер бар-жоқтығына
қарамастан алынған кестенің барлық жолдарын санау. Келесі сҧраудың
нәтижесінде САТЫЛЫМДАР кестесіндегі жолдар саны есептеледі:
SELECT Count (*) AS Сатылым саны FROM
САТЫЛЫМДАР
Егер сіз бірдей жазбалар тобынан
біреуін қарастыруыңыз қажет
болса, онда жақшадағы ӛрнек кілт сӛзді қамтиды DISTINCT:
COUNT(DISTINCT Тҧтынушы)
DISTINCT Бҧл MIN және MAX функциялары ҥшін мағынасы жоқ,
бірақ оны пайдалану SUM және AVG функцияларының нәтижелеріне
әсер етуі мҥмкін, сондықтан әр нақты жағдайда қатысуы керек екенін
алдын-ала ойластырған жӛн. Сонымен қатар, DISTINCT кілт сӛзі кез
келген сҧрауда бірнеше рет кӛрсетілуі мҥмкін.
Мысалы, келесі қоймада тауарды
сатып алатын сатып алушылар
санын есептейді:
SELECT COUNT(DISTINCT САТЫЛЫМДАР. КЛИЕНТ) AS
Тҧтынушылар саны
FROM САТЫЛЫМДАР
Басқа мысалда бір кҥнде жіберілетін тауарлардың жалпы қҧны
есептеледі:
SELECT SUM^. Саны*Т. Қҧны) AS Жалпы Бағасы FROM
САТЫЛЫМДАР П,ТАУАРЛАР Т
WHERE (П. тауар. Тауар) AND (П. Кҥні=' 02.04.2013')
COUNT, MIN, MAX функциялары сандық және сандық емес
ӛрістерге де қолданылады. SUM және AVG функциялары сандық
ӛрістер жағдайында ғана пайдаланылуы мҥмкін.
Кейде сҧраулар сҧрауларда талап етіледі, яғни сіз барлық деректер
жиынтығына емес, белгілі бір топтар ҥшін
функцияны орындау
нәтижесін аласыз (мысалы, белгілі бір кҥн ҥшін әрбір ӛнім ҥшін әрбір
клиент ҥшін жиынтықты есептеңіз). Осы мақсатта SELECT операторы
GROUP BY ережесін қолданады. GROUP BY қатысатын сҧрауды
шақырады
257
Сҧрауды топтастыру, себебі ол SALES операциясының нәтижесі
ретінде алынған деректерді топтастырады. Әрбір жеке топ ҥшін бір
жиынтық жол жасалады. SALES сӛйлемінен
кейін топтағы мәндерді
ӛзгертпейтін сол бағандар тізімге енгізіледі, яғни олар топтауға
қатысады. Мысалы, SALES кестесіндегі
тауарларға арналған
сҧранысты топтастыру арқылы SALES сӛйлеміндегі кҥнді кӛрсете
алмайсыз, себебі сатудың әртҥрлі кҥндері әр ӛнімге сәйкес келуі
мҥмкін және сондықтан мҧндай сҧрау қате болады:
SELECT П.Тауар, П.Кҥні SUM(n. Саны)
FROM
САТЫЛЫМДАР П
GROUP BY П.Тауар
Сатылған тауарлардың жалпы санын алу ҥшін (12.6-сурет) сҧрауды
қолданыңыз:
SELECT П. Тауар, SUM^. Саны)
FROM
САТЫЛЫМДАР П
GROUP BY П. Тауар
Ал әрбір кҥн ҥшін сатылатын тауарлардың санын алу ҥшін,
алдыңғы сҧрауды келесідей тҥзету қажет:
SELECT П. тауар П. Кҥні, SUM^. Саны)
FROM САТЫЛЫМДАР П
GROUP BY П. Тауар, П. Кҥні
Басқаша айтқанда, SALES сӛйлемі тізімінде тізілген барлық ӛріс
атаулары, жиынтығы функциясында
баған атауы пайдаланылған
жағдайды қоспағанда, GROUP BY сӛйлемінде болуы керек. Сонымен
қатар GROUP BY сӛйлемінде SALES сӛйлемінде жоқ бағандар болуы
мҥмкін.
Сҧраулардағы топтауды қолданудың
тағы бір мысалы - әрбір
клиенттің сатып алуларының қосалқы шоты:
[
Товар
SUM
►
Конфеты "Коровка"
65
Конфеты "Мишка"
30
Мармелад "Кроха"
20
Мука пшеничная
50
Сахар
50
Сосиски молочные
30
Халва
55
12.6 сурет. Топтық сҧранысты орындау нәтижелері
Достарыңызбен бөлісу: