කාරණය මට තේරෙනවා GROUP BY x
.
නමුත් GROUP BY x, y
වැඩ කරන්නේ කෙසේද, එයින් අදහස් කරන්නේ කුමක්ද?
කාරණය මට තේරෙනවා GROUP BY x
.
නමුත් GROUP BY x, y
වැඩ කරන්නේ කෙසේද, එයින් අදහස් කරන්නේ කුමක්ද?
Answers:
Group By X
අදහස් එක් කණ්ඩායමේ X සඳහා එම අගය සමඟ සිටි සියල්ලෝ ය .
Group By X, Y
අදහස් එක් කණ්ඩායමේ X හා Y යන දෙකම සඳහා එකම අගයන් සමඟ සිටි සියල්ලෝ ය .
නිදසුනක් භාවිතා කිරීම නිදර්ශනය කිරීම සඳහා, විශ්ව විද්යාලයක කුමන විෂයයට සහභාගී වන්නේ කවුරුන්ද යන්න සමඟ පහත වගුව අප සතුව ඇතැයි කියමු.
Table: Subject_Selection
+---------+----------+----------+
| Subject | Semester | Attendee |
+---------+----------+----------+
| ITB001 | 1 | John |
| ITB001 | 1 | Bob |
| ITB001 | 1 | Mickey |
| ITB001 | 2 | Jenny |
| ITB001 | 2 | James |
| MKB114 | 1 | John |
| MKB114 | 1 | Erica |
+---------+----------+----------+
ඔබ group by
විෂය තීරුවේ පමණක් භාවිතා කරන විට ; කියන්න:
select Subject, Count(*)
from Subject_Selection
group by Subject
ඔබට මෙවැනි දෙයක් ලැබෙනු ඇත:
+---------+-------+
| Subject | Count |
+---------+-------+
| ITB001 | 5 |
| MKB114 | 2 |
+---------+-------+
... ITB001 සඳහා ඇතුළත් කිරීම් 5 ක් සහ MKB114 සඳහා 2 ක් ඇති බැවිනි
අපි group by
තීරු දෙකකට නම්:
select Subject, Semester, Count(*)
from Subject_Selection
group by Subject, Semester
අපට මෙය ලැබෙනු ඇත:
+---------+----------+-------+
| Subject | Semester | Count |
+---------+----------+-------+
| ITB001 | 1 | 3 |
| ITB001 | 2 | 2 |
| MKB114 | 1 | 2 |
+---------+----------+-------+
මෙයට හේතුව, අපි තීරු දෙකකින් කාණ්ඩ කරන විට, එය කියනුයේ “එකම විෂය හා සෙමෙස්ටර් ඇති සියල්ලන්ම එකම කණ්ඩායමේ සිටින පරිදි ඒවා කාණ්ඩ කරන්න, ඉන්පසු සියලු සමස්ත කාර්යයන් ගණනය කරන්න (ගණන්, එකතුව, සාමාන්යය, ආදිය). ) එම එක් එක් කණ්ඩායම් සඳහා " . මෙම උදාහරණයේ දී, මෙය පෙන්නුම් කරන්නේ, අප ඔවුන් ගණන් කරන විට, පළමු වාරයේ ITB001 කරන පුද්ගලයින් තිදෙනෙකු ද , දෙදෙනෙකු එය 2 වන වාරයේ ද කරන බව ය. MKB114 කරන පුද්ගලයින් දෙදෙනාම 1 වන වාරයේ සිටින බැවින්, දෙවන වාරය සඳහා පේළිය ("MKB114, සෙමෙස්ටර් 2" කාණ්ඩයට දත්ත ගැලපෙන්නේ නැත)
බලාපොරොත්තුවෙන් එය අර්ථවත් කරයි.
GROUP BY A,B
ලෙස සමාන වේ GROUP BY B,A
?
GROUP BY a, b
බවත් GROUP BY a AND b
, දෙවැන්න ලැයිස්තුගත කර ඇත්තේ එකම අන්තර්ගතයක් සහිත කාණ්ඩගත අයිතම පමණක් බවත් “යටි කණ්ඩායම්” නොමැති බවත් මෙහි සඳහන් කළ යුතුය . මෙම අවස්ථාවේ දී ප්රතිදානය පළමු එක හා සමාන වේ.
මෙම GROUP BY
වගන්තිය තීරු එකක් හෝ ඊට වැඩි වන විට එහි ප්රතිඵලයක්-සකසා ගැනීමට සමස්ත කාර්යයන් සමඟ එක්ව භාවිතා කරයි. උදා:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
මෙම නියෝගය මතක තබා ගන්න:
1) තෝරන්න (දත්ත සමුදායකින් දත්ත තෝරා ගැනීමට භාවිතා කරයි)
2) FROM (වගු ලැයිස්තුගත කිරීම සඳහා වගන්තිය භාවිතා වේ)
3) WHERE (වාර්තා පෙරීමට වගන්තිය භාවිතා කරයි)
4) GROUP BY (බහුවිධ වාර්තා හරහා දත්ත එක්රැස් කිරීම සහ තීරු එකක් හෝ කිහිපයක් මගින් ප්රති group ල කාණ්ඩගත කිරීම සඳහා තෝරාගත් ප්රකාශයක වගන්තිය භාවිතා කළ හැකිය)
5) තිබීම (ආපසු එන පේළි කාණ්ඩය කොන්දේසිය සත්ය වූ අයට පමණක් සීමා කිරීම සඳහා GROUP BY වගන්තිය සමඟ ඒකාබද්ධව වගන්තිය භාවිතා වේ)
6) ඇණවුම් කරන්න (ප්රති result ල කට්ටලය වර්ග කිරීම සඳහා යතුරු පදය භාවිතා වේ)
ඔබ සමස්ථ කාර්යයන් භාවිතා කරන්නේ නම් ඔබට මේ සියල්ල භාවිතා කළ හැකි අතර, ඒවා සැකසිය යුතු අනුපිළිවෙල මෙයයි, එසේ නොමැතිනම් ඔබට දෝෂයක් ලබා ගත හැකිය.
සමස්ථ කාර්යයන්:
දී ඇති තීරුවක කුඩාම අගය MIN මඟින් ලබා දෙයි
දී ඇති තීරුවක ඇති සංඛ්යාත්මක අගයන්ගේ එකතුව SUM විසින් ආපසු ලබා දේ
AVG දී ඇති තීරුවක සාමාන්ය අගය ලබා දෙයි
COUNT විසින් ලබා දී ඇති තීරුවක ඇති මුළු අගයන් ගණන නැවත ලබා දෙයි
COUNT (*) වගුවක පේළි ගණන නැවත ලබා දෙයි