တွက်ချက်ခြင်းများ (Aggregations & GROUP BY)
ဒေတာတွေကို ဒီတိုင်း ကြည့်ရုံတင်မကဘဲ စာရင်းချုပ်ချင်တဲ့အခါ (ဥပမာ - User စုစုပေါင်း ဘယ်နှစ်ယောက်လဲ? ရောင်းရငွေ စုစုပေါင်း ဘယ်လောက်လဲ?) SQL ရဲ့ Aggregate Functions တွေကို သုံးပါတယ်။
အသုံးများသော တွက်ချက်မှု (၅) ခု
Section titled “အသုံးများသော တွက်ချက်မှု (၅) ခု”COUNT()- အရေအတွက် ဘယ်လောက်ရှိလဲ ရေတွက်စစ်ဆေးမယ်။SUM()- စုစုပေါင်း ပေါင်းမယ်။AVG()- ပျမ်းမျှ (Average) ရှာမယ်။MAX()- အများဆုံး/အကြီးဆုံး တန်ဖိုးကို ရှာမယ်။MIN()- အနည်းဆုံး/အသေးဆုံး တန်ဖိုးကို ရှာမယ်။
ဥပမာ - Database ထဲမှာ User စုစုပေါင်း ဘယ်နှစ်ယောက်ရှိလဲ:
SELECT COUNT(*) FROM users;ဥပမာ - ဒီလ အရောင်းစုစုပေါင်း ဘယ်လောက်လဲ:
SELECT SUM(total_price) FROM orders;အုပ်စုဖွဲ့ခြင်း (GROUP BY)
Section titled “အုပ်စုဖွဲ့ခြင်း (GROUP BY)”GROUP BY ဆိုတာ တူရာတူရာတွေကို အုပ်စုဖွဲ့ပေးတာပါ။ များသောအားဖြင့် အပေါ်က COUNT, SUM တို့လို တွက်ချက်မှုတွေနဲ့ တွဲသုံးလေ့ရှိပါတယ်။
ဥပမာ - “ရန်ကုန်မှာ User ဘယ်နှစ်ယောက်၊ မန္တလေးမှာ User ဘယ်နှစ်ယောက်” လို့ မြို့အလိုက် အုပ်စုဖွဲ့ပြီး သိချင်ရင်:
SELECT city, COUNT(*) AS user_countFROM usersGROUP BY city;(အဓိပ္ပာယ်: users တွေကို city အလိုက် အုပ်စုဖွဲ့မယ်၊ ပြီးရင် တစ်အုပ်စုမှာ ဘယ်နှစ်ယောက်ရှိလဲ (COUNT) ရေမယ်။)
အုပ်စုဖွဲ့ပြီးမှ စစ်ထုတ်ခြင်း (HAVING)
Section titled “အုပ်စုဖွဲ့ပြီးမှ စစ်ထုတ်ခြင်း (HAVING)”ရှေ့မှာ ကိုယ်လိုချင်တဲ့ Data ကို စစ်ထုတ်ဖို့ WHERE ကို သုံးခဲ့ပါတယ်။ ဒါပေမယ့် ပေါင်းထား၊ ရေထားတဲ့ တွက်ချက်မှု ရလဒ်တွေ (COUNT, SUM) ကို စစ်ထုတ်ချင်ရင်တော့ WHERE သုံးလို့ မရပါဘူး။ အဲဒီအစား HAVING ကို သုံးရပါတယ်။
WHEREက မတွက်ချက်ခင် (မအုပ်စုဖွဲ့ခင်) စစ်ထုတ်တာပါ။HAVINGက တွက်ချက်ပြီးမှ (အုပ်စုဖွဲ့ပြီးမှ) စစ်ထုတ်တာပါ။
ဥပမာ - User (၅၀) ယောက်ထက် ပိုများတဲ့ မြို့တွေကိုပဲ ကြည့်ချင်တယ်ဆိုပါစို့:
SELECT city, COUNT(*) AS user_countFROM usersGROUP BY cityHAVING COUNT(*) > 50;