6.1 Listahan ng mga pinagsama-samang function

Kapag gumamit ka ng row grouping sa SQL kasama ang operator GROUP BY, maaari mong gamitin SELECTang 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
Ito ay hindi isang kumpletong listahan ng mga pinagsama-samang pag-andar, ngunit ang iba ay napaka-espesipiko at sa palagay ko ay hindi mo magagamit ang mga ito sa susunod na 5 taon. Kung kailangan mo pa rin ang mga ito, maaari mong palaging basahin ang opisyal na dokumentasyon para sa iyong DBMS.

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, MAXat 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 :)