Maaari mong gamitin ang mga pangunahing SQL query upang makuha ang data mula sa isang database ngunit ito ay madalas na hindi nagbibigay ng sapat na katalinuhan upang matugunan ang mga kinakailangan sa negosyo. Nagbibigay din sa iyo ng SQL ang kakayahang mag-grupo ng mga resulta ng query batay sa mga katangian ng row-level upang mag-aplay ang mga pinagsamang function gamit ang GROUP BY clause. Isaalang-alang, halimbawa, isang talahanayan ng data ng order na binubuo ng mga katangian sa ibaba:
- OrderID - isang numerong halaga ng natatanging pagkilala sa bawat order. Ang patlang na ito ay ang pangunahing susi para sa database.
- Salesperson - isang halaga ng teksto na nagbibigay ng pangalan ng salesperson na nagbebenta ng mga produkto. Ang patlang na ito ay isang banyagang susi sa isa pang talahanayan na naglalaman ng impormasyon ng tauhan.
- CustomerID - isang numerong halaga na nararapat sa isang numero ng customer account. Ang field na ito ay isang banyagang susi, na tumutukoy sa isang talahanayan na naglalaman ng impormasyon ng customer account.
- Kita - isang numerong halaga na naaayon sa dolyar na halaga ng pagbebenta.
Kapag dumating ang oras upang magsagawa ng mga review ng pagganap para sa mga salespeople, ang talahanayan ng Orders ay naglalaman ng mahalagang impormasyon na maaaring magamit para sa pagsusuri na iyon. Kapag sinusuri si Jim, maaari mong, halimbawa, magsulat ng isang simpleng tanong na nakukuha ang lahat ng mga tala ng mga benta ni Jim:
PUMILI *
MULA SA Mga Order
SAAN Salesperson KATULAD 'Jim'
Makukuha nito ang lahat ng mga rekord mula sa database na nararapat sa mga benta na ginawa ni Jim: OrderID Salesperson CustomerID Revenue
12482 Jim 182 40000
12488 Jim 219 25000
12519 Jim 137 85000
12602 Jim 182 10000
12741 Jim 155 90000
Maaari mong repasuhin ang impormasyong ito at magsagawa ng ilang mga manu-manong kalkulasyon upang makabuo ng mga istatistika ng pagganap, ngunit ito ay magiging isang nakakapagod na gawain na dapat mong ulitin para sa bawat salesperson sa kumpanya. Sa halip, maaari mong palitan ang gawaing ito gamit ang isang solong query NG GROUP na kinakalkula ang mga istatistika para sa bawat salesperson sa kumpanya. Isulat mo lang ang query at tukuyin na dapat na pangkatin ng database ang mga resulta batay sa field ng Salesperson. Pagkatapos ay maaari mong gamitin ang alinman sa mga SQL aggregate function upang magsagawa ng mga kalkulasyon sa mga resulta. Narito ang isang halimbawa. Kung isinagawa mo ang sumusunod na SQL statement: Piliin ang 'Kabuuang', MIN (Kita) AS 'Pinakamaliit', MAX (Revenue) AS Pinakamalaking, AVG (Revenue) AS 'Average', COUNT (Revenue) AS 'Number'
MULA SA Mga Order
GROUP BY Salesperson
Makukuha mo ang mga sumusunod na resulta: Salesperson Kabuuang Pinakamaliit Pinakamalaking Average na Numero
Jim 250000 10000 90000 50000 5
Mary 342000 24000 102000 57000 6
Bob 118000 4000 36000 39333 3
Tulad ng makikita mo, ang makapangyarihang function na ito ay nagbibigay-daan sa iyo upang bumuo ng mga maliliit na ulat mula sa loob ng isang SQL query, na nagbibigay ng mahalagang katalinuhan sa negosyo sa tagapamahala na nagsasagawa ng mga review ng pagganap. Ang GROUP BY clause ay kadalasang ginagamit sa mga database para sa layuning ito at isang mahalagang tool sa bag ng mga trick ng DBA.