SQL101
  • SQL-101
  • Data & Database
  • DBMS
  • Introduction to SQL
  • Data Types in SQL
  • Environment Setup
  • Diving Into SQL Queries
    • Query Introduction
    • Data Definition Language
    • Data Query Language
    • Data Manipulation Language
  • Let's get our hands dirty
    • Sorting & Filtering
    • Logical & Comparison Operators
    • Aggregations
    • DATE & TIME
  • Relationships
    • Relationship
    • Joins
    • Relationship in queries
  • Optimizations and controls
    • Indexing
    • Triggers
    • Transactions
    • Normalization
  • Entity Relationship Diagram
  • Conclusion
Powered by GitBook
On this page
  • COUNT
  • SUM
  • AVG
  • MIN
  • MAX
  • GROUP BY
  • HAVING

Was this helpful?

Edit on GitHub
  1. Let's get our hands dirty

Aggregations

PreviousLogical & Comparison OperatorsNextDATE & TIME

Last updated 1 year ago

Was this helpful?

Data တွေကိုစုပေါင်းပြီးတော့တွက်ချက်မှုတွေ၊ report ပုံစံမျိုးတွေထုတ်ပေးနိုင်ဖို့အတွက် SQL က Aggregations ဆိုတဲ့ functions တွေကို support လုပ်ပေးထားပါတယ်။ သဘောတရားကိုပိုနားလည်နိုင်ဖို့အတွက်အောက်က query တွေစမ်းရေးကြည့်ပြီး results တွေကိုကြည့်နိုင်ပါတယ်။

သုံးနေကျ students table ကိုပဲဆက်သုံးကြပါမယ်။

COUNT

ထွက်လာမယ့် result set တစ်ခုရဲ့data rows တွေကိုတွက်ချင်တဲ့အချိန်မှာ COUNT ဆိုတဲ့ function ကိုသုံးနိုင်ပါတယ်။

SELECT COUNT(*) AS TotalStudents
FROM students;
ag1

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 ဖြစ်တတ်ပါတယ်။ အပေါ်ကကျနော့်နမူနာကို စုတုပြုပြီး မိမိဘာသာဆက်ပြီးလေ့ကျင့်ကြည့်ကြပါဦး။

ag2
ag3
ag4
ag5
ag6
ag7
ag8