Aggregations
Data တွေကိုစုပေါင်းပြီးတော့တွက်ချက်မှုတွေ၊ report ပုံစံမျိုးတွေထုတ်ပေးနိုင်ဖို့အတွက် SQL က Aggregations ဆိုတဲ့ functions တွေကို support လုပ်ပေးထားပါတယ်။ သဘောတရားကိုပိုနားလည်နိုင်ဖို့အတွက်အောက်က query တွေစမ်းရေးကြည့်ပြီး results တွေကိုကြည့်နိုင်ပါတယ်။
သုံးနေကျ students
table ကိုပဲဆက်သုံးကြပါမယ်။
COUNT
ထွက်လာမယ့် result set တစ်ခုရဲ့data rows တွေကိုတွက်ချင်တဲ့အချိန်မှာ COUNT ဆိုတဲ့ function ကိုသုံးနိုင်ပါတယ်။
SELECT COUNT(*) AS TotalStudents
FROM students;

COUNT(*) ဆိုပြီး *
ကိုသုံးပြီးတော့အားလုံးးရဲ့ results ကိုယူပါမယ်။ AS TotalStudents
ဆိုတာကတော့ alias
ပေးလိုက်တာဖြစ်ပါတယ်။ alias
ဆိုတာကတော့အသုံးပြု (ပြန်ခေါ်လို့ရမယ့်)နာမည်တစ်ခုပေးလိုက်တာလို့ဆိုနိုင်ပါတယ်။ လောလောဆယ်သိပ်နားမလည်လည်းရပါတယ်။
alias
မပါဘဲတန်းသုံးလည်းရပါတယ်။ ထွက်လာတဲ့ column နာမည်နေရာမှာတော့ alias
နာမည်မဟုတ်တော့ဘဲ COUNT(*)
ဆိုပြီးတော့ဘဲပါလာပါမယ်။ ဒါကြောင့်ပြန်ခေါ်သုံးရလွယ်အောင် နားလည်ရလွယ်ကူတဲ့ alias
နာမည်လေးတွေပေးပြီး query ရေးလေ့ရှိကြပါတယ်။

SUM
ကိန်းဂဏန်းတွေရှိတဲ့ column တွေရဲ့တန်ဖိုးတွေကိုစုပြီးပေါင်းချင်တဲ့အချိန်မှာ SUM
ကိုသုံးနိုင်ပါတယ်။ ဥပမာ students
table ထဲက age
column တွေအကုန်ပေါင်းချင်တယ်ဆိုပါစို့၊ အောက်ကလိုမျိုး SUM
ကိုသုံးပြီးရေးနိုင်ပါတယ်။
SELECT SUM(age) AS TotalAge
FROM students;

AVG
AVG ကတော့ SUM
နဲ့ပုံစံတူပဲ၊ သို့ပေမယ့်ပေါင်းတာမဟုတ်ဘဲနဲ့ Average ကိုတွက်ပေးတာဖြစ်ပါတယ်။ students
table ထဲက age
column ရဲ့ average ကိုတွက်ကြည့်ရအောင်။ (ဥပမာဒီကျောင်းကကျောင်းသားတွေရဲ့ average age ကဘယ်လောက်လဲဆိုတာမျိုးတွက်တဲ့နေရာမျိုးမှာအသုံးဝင်ပါတယ်။)
SELECT AVG(age) AS AverageAge
FROM students;

MIN
MIN
ကတော့အသေးဆုံးကိန်းဂဏန်းကိုဆွဲထုတ်ချင်တဲ့အချိန်မျိုးမှာသုံးပါတယ်။ students
table ထဲကအသက်အငယ်ဆုံးကျောင်းသားကိုသိချင်တယ်ဆိုရင် ဒီလိုမျိုးထုတ်ကြည့်နိုင်ပါတယ်။
SELECT MIN(age) AS YoungestAge
FROM students;

MAX
MAX
ကတော့ MIN
နဲ့ပြောင်းပြန်အကြီးဆုံးကိုဆွဲထုတ်တာဖြစ်ပါတယ်။
SELECT MAX(age) AS OldestAge
FROM students;

GROUP BY
GROUP BY
ကိုအရှေ့မှာတွေ့ပြီးသားဖြစ်မှာပါ။ ထပ်ဖော်ပြရတဲ့အကြောင်းရင်းက Aggregation function တွေသုံးပြီး query ဆွဲတဲ့အချိန်မှာ GROUP BY
ကိုသုံးပြီး group လေးတွေခွဲပြီး data တွေကိုထုတ်ကြည့်လို့ရပါတယ်။ ဥပမာ major
တစ်ခုချင်းစီမှာကျောင်းသားဘယ်နှစ်ယောက်ရှိလဲဆိုတာမျိုးသိချင်ရင် GROUP BY
ကို Aggregation function တွေနဲ့ပေါင်းပြီးအောက်ကလိုသုံးနိုင်ပါတယ်။
SELECT major, COUNT(*) AS NumberOfStudents
FROM students
GROUP BY major;

HAVING
HAVING
ကတော့ အရှေ့အပိုင်းတွေမှာဖော်ပြခဲ့တဲ့ WHERE
နဲ့အတူတူပါပဲ။ Aggregation functions တွေမှာ WHERE
ကိုအသုံးပြုလို့မရနိုင်တဲ့အတွက် HAVING
ကိုသုံးခြင်းဖြစ်ပါတယ်။ အပေါ်က query ကိုပဲ HAVING
နဲ့ filter ခံကြည့်ရအောင်။ major
group ထဲကမှကျောင်းသားတစ်ယောက်အထက်ရှိတဲ့ major
ကိုပဲလိုချင်တယ်ဆိုပါစို့။
SELECT major, COUNT(*) AS NumberOfStudents
FROM students
GROUP BY major
HAVING COUNT(*) > 1;

Aggregation functions တွေက real world မှာလည်းအသုံးဝင်တဲ့ functions တွေဖြစ်ပါတယ်။ သူ့ချည်းပဲဆိုမသိသာပေမယ့် GROUP BY
တို့ HAVING
တို့ခံပြီးသုံးမယ်ဆိုအရမ်း powerful ဖြစ်တဲ့အပြင် query ကများတဲ့အခါရေးရတာလဲ နည်းနည်း tricky ဖြစ်တတ်ပါတယ်။ အပေါ်ကကျနော့်နမူနာကို စုတုပြုပြီး မိမိဘာသာဆက်ပြီးလေ့ကျင့်ကြည့်ကြပါဦး။
Last updated
Was this helpful?