Sql summa ar nosacījumu. SQL apkopošanas funkcijas - SUM, MIN, MAX, AVG, COUNT. Parametri vai argumenti

Kā es varu uzzināt konkrēta piegādātāja ražoto datoru modeļu skaitu? Kā noteikt vidējo cenu datoriem, kuriem ir tāds pats specifikācijas? Uz šiem un daudziem citiem jautājumiem, kas saistīti ar kādu statistikas informāciju, var atbildēt, izmantojot galīgās (agregētās) funkcijas. Standarts nodrošina šādas apkopotas funkcijas:

Visas šīs funkcijas atgriež vienu vērtību. Tajā pašā laikā funkcijas COUNT, MIN Un MAX piemērojams jebkuram datu tipam, kamēr SUMMA Un AVG tiek izmantoti tikai ciparu laukiem. Atšķirība starp funkciju SKAITĪT(*) Un COUNT(<имя поля>) ir tas, ka otrais, aprēķinot, neņem vērā NULL vērtības.

Piemērs. Atrodiet minimālo un maksimālo cenu personālajiem datoriem:

Piemērs. Atrodiet pieejamo ražotāja A ražoto datoru skaitu:

Piemērs. Ja mūs interesē ražotāja A ražoto dažādu modeļu skaits, tad vaicājumu var formulēt šādi (izmantojot to, ka Preču tabulā katrs modelis tiek ierakstīts vienu reizi):

Piemērs. Atrodiet pieejamo dažādu ražotāju A ražoto modeļu skaitu. Vaicājums ir līdzīgs iepriekšējam, kurā bija jānosaka kopējais ražotāja A ražoto modeļu skaits. Šeit arī jāatrod dažādu modeļu skaits datora galds (t.i., tie, kas pieejami pārdošanai).

Lai nodrošinātu, ka, iegūstot statistiskos rādītājus, tiek izmantotas tikai unikālas vērtības, kad agregātu funkciju arguments Var izmantot DISTINCT parametrs. Cits parametrs VISI ir noklusējuma un pieņem, ka tiek ieskaitītas visas kolonnā atgrieztās vērtības. operators,

Ja mums ir nepieciešams iegūt saražoto datoru modeļu skaitu visi ražotājs, jums būs jāizmanto GROUP BY klauzula, sintaktiski seko KUR klauzulas.

GROUP BY klauzula

GROUP BY klauzula izmanto, lai definētu izvadlīniju grupas, kurām var lietot apkopotās funkcijas (COUNT, MIN, MAX, AVG un SUM). Ja šīs klauzulas trūkst un tiek izmantotas apkopotās funkcijas, tad visas kolonnas ar nosaukumiem, kas minēti ATLASĪT, jāiekļauj summētās funkcijas, un šīs funkcijas tiks lietotas visai rindu kopai, kas atbilst vaicājuma predikātam. Pretējā gadījumā visas saraksta SELECT kolonnas nav iekļauts ir jānorāda apkopotās funkcijas klauzulā GROUP BY. Rezultātā visas izvades vaicājuma rindas tiek sadalītas grupās, kuras raksturo vienādas vērtību kombinācijas šajās kolonnās. Pēc tam katrai grupai tiks piemērotas apkopotās funkcijas. Lūdzu, ņemiet vērā, ka GROUP BY visas NULL vērtības tiek uzskatītas par vienādām, t.i. grupējot pēc lauka, kurā ir NULL vērtības, visas šādas rindas tiks iekļautas vienā grupā.
Ja ja ir klauzula GROUP BY, klauzulā SELECT nav apkopotas funkcijas, tad vaicājums vienkārši atgriezīs vienu rindu no katras grupas. Šo līdzekli kopā ar DISTINCT atslēgvārdu var izmantot, lai rezultātu kopā novērstu dublētās rindas.
Apskatīsim vienkāršu piemēru:
ATLASĪT modeli, COUNT(modelis) AS Daudzums_modelis, AVG(cena) AS Vidējā_cena
NO PC
GROUP BY modeļa;

Šajā pieprasījumā katram datora modelim ir noteikts to skaits un vidējās izmaksas. Visas rindas ar vienādu modeļa vērtību veido grupu, un SELECT izvade aprēķina vērtību skaitu un vidējās cenas vērtības katrai grupai. Vaicājuma rezultāts būs šāda tabula:
modelis Daudzuma_modelis Vidējā_cena
1121 3 850.0
1232 4 425.0
1233 3 843.33333333333337
1260 1 350.0

Ja SELECT būtu datuma kolonna, tad šos rādītājus būtu iespējams aprēķināt katram konkrētajam datumam. Lai to izdarītu, jums ir jāpievieno datums kā grupēšanas kolonna, un pēc tam katrai vērtību kombinācijai (modelis-datums) tiks aprēķinātas apkopotās funkcijas.

Ir vairāki specifiski agregātu funkciju veikšanas noteikumi:

  • Ja pieprasījuma rezultātā nav saņemta neviena rinda(vai vairāk nekā viena rinda konkrētai grupai), tad nav avota datu nevienas apkopotās funkcijas aprēķināšanai. Šajā gadījumā funkciju COUNT rezultāts būs nulle, bet visu pārējo funkciju rezultāts būs NULL.
  • Arguments agregāta funkcija nevar saturēt apkopotas funkcijas(funkcija no funkcijas). Tie. vienā vaicājumā nav iespējams, teiksim, iegūt vidējo vērtību maksimumu.
  • Funkcijas COUNT izpildes rezultāts ir vesels skaitlis(VESELS SKAITLIS). Citas apkopotās funkcijas manto to apstrādāto vērtību datu tipus.
  • Ja funkcija SUM rada rezultātu, kas ir lielāks par izmantotā datu tipa maksimālo vērtību, kļūda.

Tātad, ja pieprasījums nesatur GROUP BY klauzulas, Tas summētās funkcijas iekļauts SELECT klauzula, tiek izpildītas visās iegūtajās vaicājuma rindās. Ja pieprasījums satur GROUP BY klauzula, katra rindu kopa, kurai ir vienādas kolonnas vai kolonnu grupas vērtības, kas norādītas GROUP BY klauzula, veido grupu, un summētās funkcijas tiek veiktas katrai grupai atsevišķi.

IR piedāvājums

Ja KUR klauzula definē predikātu rindu filtrēšanai, tad IR piedāvājums attiecas pēc grupēšanas lai definētu līdzīgu predikātu, kas filtrē grupas pēc vērtībām summētās funkcijas. Šī klauzula ir nepieciešama, lai apstiprinātu vērtības, kas iegūtas, izmantojot agregāta funkcija nevis no atsevišķām ieraksta avota rindām, kas definētas NO klauzulas, un no šādu līniju grupas. Tāpēc šādu čeku nevar ietvert KUR klauzula.

Funkcija SUM SQL valodā, neskatoties uz tās vienkāršību, tiek izmantota diezgan bieži, strādājot ar datu bāzi. Ar tās palīdzību ir ērti iegūt dažus starpposma vai gala rezultātus, neizmantojot papildu DBVS rīkus.

Funkciju sintakse

Vairākumā SQL valodas summas sintakse ir tāda pati - kā arguments tiek izmantots tikai lauka nosaukums vai kāda aritmētiskā darbība vairākiem no tiem, virs kuriem nepieciešama summa.

Izņēmuma gadījumos ir iespējams pārsūtīt noteiktu vērtību kā skaitli vai mainīgo, taču šādas “shēmas” praktiski netiek izmantotas, jo tām nav lielas vērtības. Tālāk ir norādīta funkcijas sintakse SQL:

summa(a) - šeit kā parametrs a tiek izmantota kāda skaitliska vērtība vai izteiksme

Ir vērts atzīmēt, ka pirms parametra varat iestatīt atslēgvārdus, piemēram, DISTINCT vai ALL, kuriem būs attiecīgi tikai unikālas vai visas vērtības.

SUM izmantošanas piemērs SQL

Lai pilnībā saprastu, kā funkcija darbojas, ir vērts apsvērt vairākus piemērus. SQL sistēmā SUM var izmantot gan kā atgriešanas rezultātu, gan kā starpvērtību, piemēram, lai pārbaudītu nosacījumu.

Pirmajā gadījumā apsveriet iespēju, kad ir jāatgriež katras preces pārdošanas apjoms, ņemot vērā, ka veikto pirkumu skaits var būt daudzskaitlī. Lai iegūtu rezultātu, pietiks ar šādu vaicājumu:

IZVĒLĒTIES Preci, summa(PirkumaSumma) NO Pārdošanas Grupas Pēc produkta;

Atbildot uz šo komandu būs unikāls preču saraksts ar kopējo pirkuma summu katram no tiem.

Otrajam piemēram ir jāiegūst saraksts ar precēm, kuru pārdošanas apjoms pārsniedz noteiktu vērtību, piemēram, 100. Šim uzdevumam rezultātu var iegūt vairākos veidos, no kuriem optimālākais ir izpildīt vienu pieprasījumu:

SELECT Product FROM (SELECT Product, summa(Purchase Summa) kā Summa no pārdošanas) WHERE Summa > 100.

SQL - Nodarbība 11. Kopējās funkcijas, aprēķinātās kolonnas un skati

Kopējās funkcijas sauc arī par statistiskām, apkopotām vai summas funkcijām. Šīs funkcijas apstrādā virkņu kopu, lai saskaitītu un atgrieztu vienu vērtību. Ir tikai piecas šādas funkcijas:
  • Funkcija AVG() atgriež kolonnas vidējo vērtību.

  • Funkcija COUNT() atgriež kolonnas rindu skaitu.

  • Funkcija MAX() atgriež kolonnas lielāko vērtību.

  • Funkcija MIN() atgriež kolonnas mazāko vērtību.

  • SUM() Funkcija atgriež kolonnas vērtību summu.

Mēs jau satikāmies ar vienu no viņiem - COUNT() - 8. nodarbībā. Tagad iepazīsimies ar pārējiem. Pieņemsim, ka vēlējāmies uzzināt mūsu veikalā esošo grāmatu minimālo, maksimālo un vidējo cenu. Pēc tam no cenu tabulas jums ir jāņem minimālās, maksimālās un vidējās vērtības cenu kolonnai. Pieprasījums ir vienkāršs:

SELECT MIN(cena), MAX(cena), AVG(cena) NO cenām;

Tagad vēlamies noskaidrot, cik preces mums atveda piegādātājs "House of Printing" (id=2). Izteikt šādu pieprasījumu nav tik vienkārši. Padomāsim, kā to sastādīt:

1. Vispirms no tabulas Izejmateriāli (ienākošie) atlasiet to piegāžu identifikatorus (id_incoming), kuras veica piegādātājs "Print House" (id=2):

2. Tagad no Piegādes žurnāla tabulas (žurnāls_ienākošais) jāizvēlas preces (id_prece) un to daudzums (daudzums), kas tika veiktas 1. punktā konstatētajās piegādēs. Tas nozīmē, ka vaicājums no 1. punkta kļūst ligzdots:

3. Tagad iegūtajai tabulai jāpievieno cenas par atrastajām precēm, kuras tiek saglabātas tabulā Cenas. Tas nozīmē, ka mums būs jāpievienojas tabulām Supply Magazine (magazine_incoming) un Cenas, izmantojot sleju id_product:

4. Iegūtajā tabulā skaidri trūkst kolonnas Summa, tas ir aprēķinātā kolonna. Iespēja izveidot šādas kolonnas tiek nodrošināta MySQL. Lai to izdarītu, vaicājumā vienkārši jānorāda aprēķinātās kolonnas nosaukums un tas, kas tai jāaprēķina. Mūsu piemērā šāda kolonna tiks saukta par summa, un tā aprēķinās daudzuma un cenas kolonnu reizinājumu. Jaunās kolonnas nosaukums ir atdalīts ar vārdu AS:

SELECT žurnāls_ienākošais.id_produkts, žurnāla_ienākošais.daudzums, cenas.cena, žurnāls_ienākošais.daudzums*cenas.cena AS summa FROM žurnāls_ienākums, cenas WHERE žurnāls_ienākošais.id_produkts= cenas.id_produkts UN id_ienākums= (SELECT id_incoming FROM incoming WHERE2);

5. Lieliski, atliek tikai saskaitīt summas kolonnu un beidzot noskaidrot, par cik piegādātājs “House of Printing” mums atveda preces. Funkcijas SUM() izmantošanas sintakse ir šāda:

SELECT SUM(kolonnas_nosaukums) NO tabulas_nosaukums;

Mēs zinām kolonnas nosaukumu - summa, bet mums nav tabulas nosaukuma, jo tas ir vaicājuma rezultāts. Ko darīt? Šādiem gadījumiem MySQL ir skati. Skats ir atlases vaicājums, kuram tiek piešķirts unikāls nosaukums un ko var saglabāt datu bāzē vēlākai lietošanai.

Skata izveides sintakse ir šāda:

CREATE VIEW view_name AS pieprasījums;

Saglabāsim pieprasījumu kā skatu ar nosaukumu report_vendor:

CREATE VIEW report_vendor AS IZVĒLĒTIES žurnāls_ienākošais.id_produkts, žurnāla_ienākošais.daudzums, cenas.cena, žurnāla_ienākošais.daudzums*cenas.cena AS summa FROM žurnāls_ienākums, cenas KUR žurnāls_ienākošais.id_produkts= cenas.id_produkts UN id_ienākums= (SELECT2 id_idiningdoringH );

6. Tagad varat izmantot pēdējo funkciju SUM():

SELECT SUM(summa) NO report_vendor;

Tātad mēs sasniedzām rezultātu, lai gan šim nolūkam mums bija jāizmanto ligzdotie vaicājumi, savienojumi, aprēķinātās kolonnas un skati. Jā, dažreiz ir jādomā, lai iegūtu rezultātu, bez tā jūs nekur nevarat tikt. Bet mēs pieskārāmies divām ļoti svarīgām tēmām – aprēķinātajām kolonnām un skatījumiem. Parunāsim par tiem sīkāk.

Aprēķinātie lauki (kolonnas)

Izmantojot piemēru, mēs šodien apskatījām matemātisko aprēķināto lauku. Šeit vēlos piebilst, ka var izmantot ne tikai reizināšanas operāciju (*), bet arī atņemšanu (-), saskaitīšanu (+) un dalīšanu (/). Sintakse ir šāda:

SELECT kolonnas_nosaukums 1, kolonnas_nosaukums 2, kolonnas_nosaukums 1 * kolonnas_nosaukums 2 AS aprēķinātais_kolonnas_nosaukums NO tabulas_nosaukums;

Otra nianse ir AS atslēgvārds, mēs to izmantojām, lai iestatītu aprēķinātās kolonnas nosaukumu. Faktiski šis atslēgvārds tiek izmantots, lai iestatītu aizstājvārdus visām kolonnām. Kāpēc tas ir vajadzīgs? Koda samazināšanai un lasāmībai. Piemēram, mūsu skats varētu izskatīties šādi:

CREATE VIEW report_vendor AS SELECT A.id_product, A.quantity, B.price, A.quantity*B.price AS summa FROM magazine_incoming AS A, cenas AS B WHERE A.id_product= B.id_product AND id_incoming= (ATLASES id_incoming FROM incoming WHERE id_vendor=2);

Piekrītiet, ka tas ir daudz īsāks un skaidrāks.

Pārstāvība

Mēs jau esam apskatījuši skatu izveides sintaksi. Kad skati ir izveidoti, tos var izmantot tāpat kā tabulas. Tas ir, izpildiet vaicājumus pret tiem, filtrējiet un kārtojiet datus un apvienojiet dažus skatus ar citiem. No vienas puses, tas ir ļoti ērts veids, kā uzglabāt bieži lietotus sarežģīti vaicājumi(kā mūsu piemērā).

Bet atcerieties, ka skati nav tabulas, tas ir, tie neuzglabā datus, bet tikai izgūst tos no citām tabulām. Tādējādi, pirmkārt, mainoties datiem tabulās, mainīsies arī prezentācijas rezultāti. Un, otrkārt, kad tiek pieprasīts skats, tiek meklēti nepieciešamie dati, tas ir, tiek samazināta DBVS veiktspēja. Tāpēc jums nevajadzētu tos ļaunprātīgi izmantot.

Tajā mācību grāmata jūs uzzināsiet, kā lietot SUM funkcija V SQL serveris(Transact-SQL) ar sintaksi un piemēriem.

Apraksts

SQL serverī (Transact-SQL) SUM funkcija atgriež izteiksmes kopējo vērtību.

Sintakse

SUM funkcijas sintakse SQL Server (Transact-SQL) ir:

VAI funkcijas SUM sintakse, grupējot rezultātus pēc vienas vai vairākām kolonnām, ir:

Parametri vai argumenti

izteiksme1 , izteiksme2 , ... izteiksme_n ir izteiksmes, kas nav iekļautas funkcijā SUM un ir jāiekļauj klauzulā GROUP BY SQL priekšraksta beigās.
aggregate_expression ir kolonna vai izteiksme, kas tiks apkopota.
tabulas - tabulas, no kurām vēlaties iegūt ierakstus. Klauzulā FROM ir jābūt vismaz vienai tabulai.
KUR nosacījumi - pēc izvēles. Šie ir nosacījumi, kas jāievēro atlasītajiem ierakstiem.

Pieteikums

Funkciju SUM var izmantot šādās SQL Server (Transact-SQL) versijās:
SQL Server vNext, SQL Server 2016, SQL Server 2015, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005

Piemērs ar vienu lauku

Apskatīsim dažus SQL Server SUM funkciju piemērus, lai saprastu, kā izmantot SUM funkciju SQL Server (Transact-SQL).

Piemēram, jūs varat uzzināt visu produktu kopējo daudzumu, kuru daudzums ir lielāks par 10.

Šajā funkcijas SUM piemērā mēs esam aizstājuši izteiksmi SUM(kvantitāte) “Kopējais daudzums”. Atgriežot rezultātu kopu - kā lauka nosaukums parādīsies "Kopējais daudzums".

DISTINCT izmantošanas piemērs

Funkcijā SUM varat izmantot operatoru DISTINCT. Piemēram, zemāk esošais SQL priekšraksts atgriež kopējo algu ar unikālām algas vērtībām, ja alga ir mazāka par USD 29 000 gadā.

Ja abas algas būtu 24 000 USD gadā, tikai viena no šīm vērtībām tiktu izmantota funkcijā SUM.

Formulas izmantošanas piemērs

SUM funkcijā ietvertajai izteiksmei nav jābūt vienam laukam. Varat arī izmantot formulu. Piemēram, jūs varat aprēķināt kopējo komisijas maksu.

Transact-SQL

SELECT SUM(pārdošana * 0.03) AS "Kopā komisija" NO pasūtījumiem;

SELECT SUM (pārdošana * 0,03 ) AS "Kopējā komisija"

NO pasūtījumiem;

GROUP BY izmantošanas piemērs

Dažos gadījumos jums būs jāizmanto operators GROUP BY ar funkciju SUM.

Mācīsimies apkopot. Nē, tie nav SQL izpētes rezultāti, bet gan datu bāzes tabulu kolonnu vērtību rezultāti. SQL apkopotās funkcijas darbojas uz kolonnas vērtībām, lai iegūtu vienu iegūto vērtību. Visbiežāk izmantotās SQL apkopošanas funkcijas ir SUM, MIN, MAX, AVG un COUNT. Ir jānošķir divi apkopoto funkciju izmantošanas gadījumi. Pirmkārt, apkopotās funkcijas tiek izmantotas pašas un atgriež vienu iegūto vērtību. Otrkārt, apkopotās funkcijas tiek izmantotas ar klauzulu SQL GROUP BY, tas ir, grupēšana pēc laukiem (kolonnām), lai iegūtu iegūtās vērtības katrā grupā. Vispirms apskatīsim gadījumus, kad tiek izmantotas apkopotās funkcijas bez grupēšanas.

SQL SUM funkcija

Funkcija SQL SUM atgriež datu bāzes tabulas kolonnas vērtību summu. To var lietot tikai kolonnām, kuru vērtības ir skaitļi. SQL vaicājumi lai iegūtu iegūto summu, sākas šādi:

ATLASĪT SUMMU (COLUMN_NAME)...

Šai izteiksmei seko FROM (TABLE_NAME), un tad nosacījumu var norādīt, izmantojot WHERE klauzulu. Turklāt pirms kolonnas nosaukuma var būt DISTINCT, kas nozīmē, ka tikai unikālas vērtības. Pēc noklusējuma tiek ņemtas vērā visas vērtības (šim nolūkam jūs varat īpaši norādīt nevis DISTINCT, bet ALL, bet vārds ALL nav nepieciešams).

Ja vēlaties palaist datu bāzes vaicājumus no šīs nodarbības uz MS SQL Server, bet šī DBVS nav instalēta jūsu datorā, varat to instalēt, izmantojot instrukcijas šajā saitē. .

Vispirms strādāsim ar uzņēmumu datu bāzi - Uzņēmums1. Šīs datu bāzes izveides skripts, tās tabulas un tabulu aizpildīšana ar datiem ir failā uz šīs saites .

1. piemērs. Ir uzņēmuma datu bāze ar datiem par tā nodaļām un darbiniekiem. Personāla tabulā ir arī kolonna ar datiem par darbinieku algām. Izvēle no tabulas izskatās šādi (lai palielinātu attēlu, noklikšķiniet uz tā ar peles kreiso pogu):

Lai iegūtu visu algu summu, mēs izmantojam šādu vaicājumu (uz MS SQL Server - ar iepriekšējo konstrukciju USE company1;):

IZVĒLĒTIES SUMMU (Algu) NO personāla

Šis vaicājums atgriezīs vērtību 287664.63.

Un tagad . Vingrojumos jau sākam sarežģīt uzdevumus, tuvinot tos praksē sastopamajiem.

SQL MIN funkcija

Funkcija SQL MIN darbojas arī kolonnās, kuru vērtības ir skaitļi, un atgriež visu kolonnas vērtību minimumu. Šīs funkcijas sintakse ir līdzīga funkcijai SUM.

3. piemērs. Datubāze un tabula ir tādas pašas kā 1. piemērā.

Jāzina minimums algas nodaļas darbinieki ar numuru 42. Lai to izdarītu, ierakstiet šādu vaicājumu (uz MS SQL Server - ar iepriekšējo konstrukciju USE uzņēmums1;):

Vaicājums atgriezīs vērtību 10505.90.

Un atkal vingrinājums priekš neatkarīgs lēmums . Šajā un dažos citos uzdevumos jums būs nepieciešama ne tikai personāla tabula, bet arī Org tabula, kurā ir dati par uzņēmuma nodaļām:


4. piemērs. Tabula Org tiek pievienota tabulai Personāls, kurā ir dati par uzņēmuma nodaļām. Drukājiet minimālo viena darbinieka nostrādāto gadu skaitu departamentā, kas atrodas Bostonā.

SQL MAX funkcija

Funkcija SQL MAX darbojas līdzīgi un tai ir līdzīga sintakse, kas tiek izmantota, ja jums ir jānosaka maksimālā vērtība starp visām kolonnas vērtībām.

5. piemērs.

Jānoskaidro 42. nodaļas darbinieku maksimālā alga. Lai to izdarītu, ierakstiet šādu vaicājumu (MS SQL Server - ar prefiksu USE company1;):

Vaicājums atgriezīs vērtību 18352.80

Ir laiks vingrinājumi patstāvīgam risinājumam.

6. piemērs. Mēs atkal strādājam ar diviem galdiem - Staff un Org. Parādīt nodaļas nosaukumu un maksimālo komisijas maksu, ko saņēmis viens darbinieks nodaļā, kas pieder departamentu grupai (Nodaļa) Austrumi. Izmantot JOIN (savieno tabulas) .

SQL AVG funkcija

Tas, kas teikts par iepriekš aprakstīto funkciju sintaksi, attiecas arī uz SQL AVG funkciju. Šī funkcija atgriež vidējo vērtību no visām kolonnā esošajām vērtībām.

7. piemērs. Datubāze un tabula ir tādas pašas kā iepriekšējos piemēros.

Pieņemsim, ka vēlaties noskaidrot 42. nodaļas darbinieku vidējo darba stāžu. Lai to izdarītu, ierakstiet šādu vaicājumu (MS SQL Server - ar iepriekšējo konstrukciju USE uzņēmums1;):

Rezultāts būs 6.33

8. piemērs. Strādājam ar vienu galdu - Personāls. Parādiet vidējo algu darbiniekiem ar 4 līdz 6 gadu pieredzi.

SQL COUNT funkcija

Funkcija SQL COUNT atgriež ierakstu skaitu datu bāzes tabulā. Ja vaicājumā norādāt SELECT COUNT(COLUMN_NAME) ..., rezultāts būs ierakstu skaits, neņemot vērā tos ierakstus, kuros kolonnas vērtība ir NULL (nenodefinēta). Ja kā argumentu izmantojat zvaigznīti un sākat vaicājumu SELECT COUNT(*) ..., rezultāts būs visu tabulas ierakstu (rindu) skaits.

9. piemērs. Datubāze un tabula ir tādas pašas kā iepriekšējos piemēros.

Jūs vēlaties uzzināt visu darbinieku skaitu, kuri saņem komisijas maksas. Darbinieku skaits, kuru Comm kolonnas vērtības nav NULL, tiks atgrieztas ar šādu vaicājumu (MS SQL Server - ar prefiksu USE company1;):

IZVĒLĒTIES SKAITS (Comm) NO personāla

Rezultāts būs 11.

10. piemērs. Datubāze un tabula ir tādas pašas kā iepriekšējos piemēros.

Ja vēlaties uzzināt kopējo ierakstu skaitu tabulā, izmantojiet vaicājumu ar zvaigznīti kā argumentu funkcijai COUNT (MS SQL Server - ar iepriekšējo konstrukciju USE company1;):

IZVĒLĒTIES SKAITS (*) NO darbiniekiem

Rezultāts būs 17.

Nākamajā vingrinājums neatkarīgam risinājumam jums būs jāizmanto apakšvaicājums.

11. piemērs. Strādājam ar vienu galdu - Personāls. Parādīt darbinieku skaitu plānošanas nodaļā (Plains).

Apkopot funkcijas ar SQL GROUP BY

Tagad apskatīsim apkopojošo funkciju izmantošanu kopā ar SQL GROUP BY priekšrakstu. SQL GROUP BY priekšraksts tiek izmantots, lai datu bāzes tabulā rezultātu vērtības grupētu pēc kolonnām. Vietnē ir nodarbība, kas veltīta atsevišķi šim operatoram .

Strādāsim ar "Ads Portal 1" datu bāzi. Šīs datu bāzes izveides, tās tabulas un datu tabulas aizpildīšanas skripts ir failā uz šīs saites .

12. piemērs. Tātad ir sludinājumu portāla datu bāze. Tajā ir reklāmu tabula, kurā ir dati par nedēļā iesniegtajām reklāmām. Slejā Kategorija ir dati par lielām reklāmu kategorijām (piemēram, Nekustamais īpašums), bet slejā Daļas ir dati par mazākām kategorijās iekļautajām daļām (piemēram, dzīvokļu un vasarnīcu daļas ir kategorijas Nekustamie īpašumi). Ailē Vienības ir dati par iesniegto sludinājumu skaitu, bet ailē Nauda – par sludinājumu iesniegšanu saņemto naudas summu.

KategorijadaļaVienībasNauda
TransportsAutomašīnas110 17600
Nekustamais īpašumsDzīvokļi89 18690
Nekustamais īpašumsDachas57 11970
TransportsMotocikli131 20960
BūvmateriāliDēļi68 7140
Elektrotehnikatelevizori127 8255
ElektrotehnikaLedusskapji137 8905
BūvmateriāliRegips112 11760
AtpūtaGrāmatas96 6240
Nekustamais īpašumsMājās47 9870
AtpūtaMūzika117 7605
AtpūtaSpēles41 2665

Izmantojot SQL GROUP BY priekšrakstu, atrodiet naudas summu, kas nopelnīta, ievietojot sludinājumus katrā kategorijā. Mēs rakstām šādu vaicājumu (uz MS SQL Server - ar iepriekšējo konstrukciju USE adportal1;):

IZVĒLĒTIES kategoriju, SUMMA (nauda) KĀ Naudu NO REKLĀMU GRUPAS PĒC kategorijas

13. piemērs. Datubāze un tabula ir tādas pašas kā iepriekšējā piemērā.

Izmantojot priekšrakstu SQL GROUP BY, noskaidrojiet, kurā katras kategorijas daļā bija visvairāk ierakstu. Mēs rakstām šādu vaicājumu (uz MS SQL Server - ar iepriekšējo konstrukciju USE adportal1;):

ATLASĪT kategoriju, daļu, MAX (vienības) AS maksimumu NO REKLĀMU GRUPAS PĒC kategorijas

Rezultāts būs šāda tabula:

Kopējās un individuālās vērtības var iegūt vienā tabulā vaicājuma rezultātu apvienošana, izmantojot operatoru UNION .

Relāciju datu bāzes un SQL valoda




Tops