6.1 Listahan ng mga pinagsama-samang function
Kapag gumamit ka ng row grouping sa SQL kasama ang operator GROUP BY
, maaari mong gamitin SELECT
ang mga function sa statement na gumagana sa nakagrupong data. Ang mga naturang function ay tinatawag ding aggregate functions.
Narito ang isang listahan ng mga pinakasikat:
# | Function | Paglalarawan |
---|---|---|
1 | COUNT() | Ibinabalik ang bilang ng mga halaga sa isang pangkat |
2 | SUM() | Ibinabalik ang kabuuan ng mga halaga sa isang pangkat |
3 | MAX() | Ibinabalik ang maximum na halaga ng isang pangkat |
4 | MIN() | Ibinabalik ang pinakamababang halaga ng isang pangkat |
5 | AVG() | Ibinabalik ang mean ng isang pangkat |
6 | BIT_AND() | Gumaganap ng bitwise AT sa lahat ng value ng grupo |
7 | BIT_OR() | Gumaganap ng bitwise OR sa lahat ng value ng grupo |
8 | BIT_XOR() | Nagsasagawa ng bitwise XOR sa lahat ng value ng grupo |
9 | GROUP_CONCAT() | Pinagsasama-sama ang lahat ng mga halaga ng pangkat sa isang string |
Ngayon tingnan natin ang ilang mga halimbawa sa aming pinagsama-samang mga function.
6.2 Pagsusuri ng mga suweldo ng empleyado
Mag-compute tayo ng ilang istatistika sa ating mga empleyado mula sa talahanayan ng empleyado .
Unang tanong: ilang empleyado ang mayroon tayo?
Kung gusto naming malaman ang bilang ng lahat ng mga tala sa talahanayan, maaari naming gamitin ang pinagsama-samang function para dito COUNT
. Ang kahilingan ay magiging ganito:
SELECT COUNT(*) FROM employee
At ibabalik ng MySQL ang numero 6 bilang tugon. Mayroon kaming 6 na empleyado sa departamento, kabilang ang isang pusa. Lahat tama.
Ikalawang tanong: magkano ang binabayaran natin kada buwan sa lahat ng empleyado?
Upang masagot ang tanong na ito, kailangan nating buuin ang mga suweldo ng lahat ng empleyado. Upang gawin ito, ginagamit namin ang pinagsama-samang functionSUM()
Ang kahilingan ay magiging ganito:
SELECT SUM(salary) FROM employee
Tandaan na sa pagkakataong ito kailangan naming tukuyin ang mga halaga ng kung aling column ang aming ibubuod. Tinukoy namin ang hanay ng suweldo . Hindi lang natin masusuma ang lahat ng field sa isang table.
At ibabalik ng MySQL ang numerong 461000 bilang sagot. Mayroon kaming 6 na empleyado sa departamento, at ang suweldo ay 461,000. Sobra.
At panghuli, ang pangatlong tanong: ano ang ating maximum at minimum na suweldo sa departamento? Well, kalkulahin natin ang average na suweldo. Upang gawin ito, kailangan namin ang mga function MIN
, MAX
at AVG
.
Ang query ay magiging mas kumplikado sa oras na ito at ganito ang hitsura:
SELECT MIN(salary), AVG(salary), MAX(salary)
FROM employee
Ang magiging resulta ng query na ito ay:
MIN(suweldo) | AVG(suweldo) | MAX(suweldo) |
---|---|---|
1000 | 76833.3333 | 200000 |
Ang pinakamababang sahod sa aming departamento ay $1,000 – napakahusay. Ang pinakamataas na suweldo ay 200 libo, ngunit ito ang direktor.
Ngunit ang average na suweldo ay masyadong mataas, kailangan mong kahit papaano ay i-optimize ang mga gastos. Mag-hire tayo ng isa pang pusa at iyon na :)