Sql summa ehdoineen. SQL-koontifunktiot - SUM, MIN, MAX, AVG, COUNT. Parametrit tai argumentit

Kuinka saan selville tietyn toimittajan valmistamien PC-mallien lukumäärän? Kuinka määrittää keskihinta tietokoneille, joissa on sama tekniset tiedot? Näihin ja moniin muihin joihinkin tilastotietoihin liittyviin kysymyksiin voidaan vastata käyttämällä lopulliset (aggregaatti) toiminnot. Standardi tarjoaa seuraavat aggregaattifunktiot:

Kaikki nämä funktiot palauttavat yhden arvon. Samalla toiminnot COUNT, MIN Ja MAX soveltuu mihin tahansa tietotyyppiin, kun taas SUMMA Ja AVG käytetään vain numeerisissa kentissä. Ero toiminnon välillä KREIVI(*) Ja KREIVI(<имя поля>) on, että toinen ei ota huomioon NULL-arvoja laskettaessa.

Esimerkki. Etsi henkilökohtaisten tietokoneiden vähimmäis- ja enimmäishinta:

Esimerkki. Etsi valmistajan A valmistamien tietokoneiden käytettävissä oleva määrä:

Esimerkki. Jos olemme kiinnostuneita valmistajan A valmistamien eri mallien määrästä, kysely voidaan muotoilla seuraavasti (käyttämällä sitä tosiasiaa, että tuotetaulukkoon jokainen malli kirjataan kerran):

Esimerkki. Selvitä valmistajan A valmistamien eri mallien lukumäärä. Kysely on samanlainen kuin edellinen, jossa piti määrittää valmistajan A valmistamien mallien kokonaismäärä. Täältä tulee myös etsiä eri mallien lukumäärä PC-pöytä (eli ne, jotka ovat myynnissä).

Sen varmistamiseksi, että tilastollisia indikaattoreita hankittaessa käytetään vain yksilöllisiä arvoja, milloin aggregaattifunktioiden argumentti voidaan käyttää DISTINCT-parametri. Toinen parametri ALL on oletusarvo ja olettaa, että kaikki sarakkeen palautetut arvot lasketaan. Operaattori,

Jos meidän on saatava tuotettujen PC-mallien lukumäärä kaikille valmistaja, sinun on käytettävä GROUP BY lauseke, seuraavat syntaktisesti WHERE-lausekkeet.

GROUP BY lauseke

GROUP BY lauseke käytetään määrittämään tuloslinjojen ryhmät, joihin voidaan soveltaa koontifunktiot (COUNT, MIN, MAX, AVG ja SUM). Jos tämä lauseke puuttuu ja käytetään koostefunktioita, kaikki sarakkeet, joiden nimet on mainittu VALITSE, pitäisi olla mukana aggregaattifunktiot, ja näitä toimintoja käytetään koko rivijoukolle, joka täyttää kyselypredikaatin. Muussa tapauksessa kaikki SELECT-luettelon sarakkeet ei sisälly aggregaattifunktioissa on määritettävä GROUP BY -lauseessa. Tämän seurauksena kaikki tuloskyselyrivit on jaettu ryhmiin, joille on ominaista samat arvoyhdistelmät näissä sarakkeissa. Tämän jälkeen kuhunkin ryhmään sovelletaan koostefunktioita. Huomaa, että GROUP BY:n kaikkia NULL-arvoja käsitellään samanarvoisina, ts. kun ryhmitellään kentällä, joka sisältää NULL-arvoja, kaikki tällaiset rivit kuuluvat yhteen ryhmään.
Jos jos on GROUP BY -lauseke, SELECT-lauseessa ei aggregaattitoimintoja, kysely palauttaa vain yhden rivin kustakin ryhmästä. Tätä ominaisuutta yhdessä DISTINCT-avainsanan kanssa voidaan käyttää poistamaan päällekkäiset rivit tulosjoukosta.
Katsotaanpa yksinkertaista esimerkkiä:
VALITSE malli, COUNT(malli) AS määrä_malli, AVG(hinta) AS keskihinta
PC:ltä
GROUP BY mallin mukaan;

Tässä pyynnössä jokaiselle PC-mallille määritetään niiden lukumäärä ja keskimääräinen hinta. Kaikki rivit, joilla on sama malliarvo, muodostavat ryhmän, ja SELECT-tulostus laskee kunkin ryhmän arvojen lukumäärän ja keskihinta-arvot. Kyselyn tulos on seuraava taulukko:
malli Määrä_malli Avg_price
1121 3 850.0
1232 4 425.0
1233 3 843.33333333333337
1260 1 350.0

Jos SELECT:ssä olisi päivämääräsarake, nämä indikaattorit olisi mahdollista laskea kullekin tietylle päivämäärälle. Tätä varten sinun on lisättävä päivämäärä ryhmittelysarakkeeksi, jonka jälkeen koontifunktiot lasketaan kullekin arvoyhdistelmälle (malli-päivämäärä).

On olemassa useita erityisiä aggregaattitoimintojen suorittamista koskevat säännöt:

  • Jos pyynnön seurauksena rivejä ei vastaanotettu(tai useamman kuin yhden rivin tietylle ryhmälle), silloin ei ole lähdetietoja minkään aggregaattifunktion laskemiseen. Tässä tapauksessa COUNT-funktioiden tulos on nolla ja kaikkien muiden funktioiden tulos on NULL.
  • Perustelu aggregaattitoiminto itse ei voi sisältää aggregaattifunktioita(funktio funktiosta). Nuo. yhdellä kyselyllä on mahdotonta saada esimerkiksi keskiarvojen maksimi.
  • COUNT-funktion suorittamisen tulos on kokonaisluku(KOKONAISLUKU). Muut koontifunktiot perivät käsittelemiensä arvojen tietotyypit.
  • Jos SUM-funktio tuottaa tuloksen, joka on suurempi kuin käytetyn tietotyypin maksimiarvo, virhe.

Joten jos pyyntö ei sisällä GROUP BY -lausekkeet, Tuo aggregaattifunktiot mukana SELECT-lauseke, suoritetaan kaikilla tuloksena olevilla kyselyriveillä. Jos pyyntö sisältää GROUP BY lauseke, jokainen rivijoukko, jolla on samat arvot sarakkeessa tai sarakeryhmässä määritellyllä sarakkeella GROUP BY lauseke, muodostaa ryhmän ja aggregaattifunktiot suoritetaan jokaiselle ryhmälle erikseen.

ON TARJOUS

Jos WHERE-lauseke määrittää sitten predikaatin rivien suodattamiseen ON TARJOUS pätee ryhmittelyn jälkeen määrittääksesi samanlaisen predikaatin, joka suodattaa ryhmät arvojen mukaan aggregaattifunktiot. Tätä lauseketta tarvitaan käyttämällä saatujen arvojen validointiin aggregaattitoiminto ei määritetyn tietuelähteen yksittäisiltä riveiltä FROM lausekkeesta, ja alkaen tällaisten linjojen ryhmiä. Siksi tällaista tarkistusta ei voida sisällyttää WHERE-lauseke.

SQL-kielen SUM-funktiota käytetään yksinkertaisuudestaan ​​huolimatta melko usein tietokannan kanssa työskennellessä. Sen avulla on kätevää saada joitain väli- tai lopputuloksia turvautumatta DBMS-aputyökaluihin.

Funktioiden syntaksi

Enemmistössä SQL-kielet summan syntaksi on sama - argumenttina käytetään vain kentän nimeä tai jotain aritmeettista operaatiota, jonka yli summa vaaditaan.

Poikkeustapauksissa on mahdollista lähettää tietty arvo numerona tai muuttujana, mutta tällaisia ​​"skeemoja" ei käytännössä käytetä, koska niillä ei ole paljon arvoa. Alla on funktion syntaksi SQL:ssä:

summa(a) - tässä jotain numeerista arvoa tai lauseketta käytetään parametrina a

On syytä huomata, että ennen parametria voit asettaa avainsanoja, esimerkiksi DISTINCT tai ALL, jotka ottavat vain yksilölliset arvot tai kaikki arvot.

Esimerkki SUM:n käytöstä SQL:ssä

Jotta ymmärrät täysin, miten toiminto toimii, kannattaa harkita useita esimerkkejä. SQL:ssä SUM:ia voidaan käyttää sekä palautustuloksena että väliarvona esimerkiksi ehdon testaamiseen.

Ensimmäisessä tapauksessa harkitse vaihtoehtoa, jolloin sinun on palautettava kunkin tuotteen myyntimäärä ottaen huomioon, että tehtyjen ostosten määrä voi olla monikkomuodossa. Tuloksen saamiseksi riittää seuraavan kyselyn suorittaminen:

SELECT Tuote, summa(Ostosumma) Myyntiryhmästä Tuotteen mukaan;

Vastauksena tämä käsky tuotteista tulee yksilöllinen luettelo, jossa on kunkin tuotteen kokonaisostosumma.

Toista esimerkkiä varten sinun on hankittava luettelo tuotteista, joiden myyntimäärä ylitti tietyn arvon, esimerkiksi 100. Voit saada tuloksen tälle tehtävälle useilla tavoilla, joista optimaalisin on suorittaa yksi pyyntö:

SELECT Product FROM (VALITSE tuote, summa (ostosumma) määränä myynnistä) WHERE Summa > 100.

SQL - Oppitunti 11. Toiminnot, lasketut sarakkeet ja näkymät yhteensä

Kokonaisfunktioita kutsutaan myös tilastollisiksi, koonti- tai summafunktioiksi. Nämä funktiot käsittelevät joukon merkkijonoja laskeakseen ja palauttaakseen yhden arvon. Tällaisia ​​toimintoja on vain viisi:
  • AVG()-funktio palauttaa sarakkeen keskiarvon.

  • COUNT()-funktio palauttaa sarakkeen rivien määrän.

  • MAX()-funktio palauttaa sarakkeen suurimman arvon.

  • MIN()-funktio palauttaa sarakkeen pienimmän arvon.

  • SUM() Funktio palauttaa sarakkeen arvojen summan.

Tapasimme jo yhden heistä - COUNT() - oppitunnilla 8. Nyt tutustutaan muihin. Oletetaan, että halusimme tietää kirjojen vähimmäis-, enimmäis- ja keskihinnat kaupassamme. Sitten hintataulukosta sinun on otettava hintasarakkeen vähimmäis-, enimmäis- ja keskiarvot. Pyyntö on yksinkertainen:

VALITSE MIN(hinta), MAX(hinta), AVG(hinta) hinnoista;

Nyt haluamme selvittää, kuinka paljon tavarantoimittaja "House of Printing" (id=2) toi meille. Tällaisen pyynnön esittäminen ei ole niin helppoa. Mietitään kuinka se tehdään:

1. Valitse ensin Toimitukset (saapuvat) -taulukosta toimittajan "Print House" (id=2) suorittamien toimitusten tunnisteet (id_incoming):

2. Nyt Supply Journal -taulukosta (magazine_incoming) on ​​valittava tavarat (id_product) ja niiden määrät (määrä), jotka on suoritettu kohdassa 1 löydetyissä toimituksissa. Toisin sanoen kyselystä pisteestä 1 tulee sisäkkäinen:

3. Nyt tuloksena olevaan taulukkoon on lisättävä löydettyjen tuotteiden hinnat, jotka on tallennettu Hinnat-taulukkoon. Toisin sanoen meidän on liityttävä Supply Magazine (magazine_incoming)- ja Prices-taulukoihin käyttämällä id_product-saraketta:

4. Tuloksena olevasta taulukosta puuttuu selvästi Määrä-sarake, toisin sanoen laskettu sarake. Mahdollisuus luoda tällaisia ​​sarakkeita on saatavilla MySQL:ssä. Tätä varten sinun tarvitsee vain määrittää kyselyssä lasketun sarakkeen nimi ja se, mitä sen pitäisi laskea. Esimerkissämme tällaista saraketta kutsutaan summaksi, ja se laskee määrä- ja hintasarakkeiden tulon. Uuden sarakkeen nimi erotetaan sanalla AS:

SELECT aikakauslehti_saapuva.tunnus_tuote, aikakauslehti_saapuva.määrä, hinnat.hinta, aikakauslehti_saapuva.määrä*hinnat.hinta AS summa FROM_saapuva aikakauslehti, hinnat WHERE aikakauslehti_saapuva.id_tuote=hinnat.tunnus_tuote AND id_saapuva= (VALITSE id_saapuva FROM saapuva WHERE2);

5. Hienoa, meidän tarvitsee vain laskea yhteen summasarake ja lopulta selvittää, kuinka paljon tavarantoimittaja "House of Printing" toi meille tavarat. SUM()-funktion syntaksi on seuraava:

SELECT SUM(sarakkeen_nimi) FROM taulukon_nimi;

Tiedämme sarakkeen nimen - summa, mutta meillä ei ole taulukon nimeä, koska se on kyselyn tulos. Mitä tehdä? Tällaisia ​​tapauksia varten MySQL:llä on näkymät. Näkymä on valintakysely, jolle annetaan yksilöllinen nimi ja joka voidaan tallentaa tietokantaan myöhempää käyttöä varten.

Näkymän luomisen syntaksi on seuraava:

CREATE VIEW view_name AS -pyyntö;

Tallennetaan pyyntömme näkymänä nimeltä report_vendor:

LUO NÄKYMÄ raportti_toimittaja AS VALITSE aikakauslehti_saapuva.tunnus_tuote, aikakauslehden_saapuva.määrä, hinnat.hinta, lehden_saapuva.määrä*hinnat.hinta AS summa FROM_saapuvasta aikakauslehdestä, hinnat MISSÄ aikakauslehti_saapuva.id_tuote=hinnat.tunnus_tuote AND id_saapuva_tuote= (VALITSE2 id_incomingdoringH );

6. Nyt voit käyttää lopullista funktiota SUM():

SELECT SUM(summa) FROM report_vendor;

Saavutimme siis tuloksen, vaikka tähän piti käyttää sisäkkäisiä kyselyitä, liitoksia, laskettuja sarakkeita ja näkymiä. Kyllä, joskus täytyy ajatella tuloksen saamiseksi, ilman tätä ei pääse mihinkään. Mutta kosketimme kahta erittäin tärkeää aihetta - laskettuja sarakkeita ja näkymiä. Puhutaanpa niistä tarkemmin.

Lasketut kentät (sarakkeet)

Esimerkin avulla tarkastelimme tänään matemaattista laskettua kenttää. Tähän haluaisin lisätä, että voit käyttää kertolaskuoperaation (*) lisäksi myös vähennyslaskua (-), yhteenlaskua (+) ja jakoa (/). Syntaksi on seuraava:

SELECT sarakkeen_nimi 1, sarakkeen_nimi 2, sarakkeen_nimi 1 * sarakkeen_nimi 2 AS laskettu_sarakkeen_nimi FROM taulukon_nimi;

Toinen vivahde on AS-avainsana, jonka avulla asetimme lasketun sarakkeen nimen. Itse asiassa tätä avainsanaa käytetään asettamaan aliaksia kaikille sarakkeille. Miksi tämä on välttämätöntä? Koodin vähentäminen ja luettavuus. Näkymämme voisi näyttää esimerkiksi tältä:

LUO NÄKYMÄ raportti_toimittaja AS SELECT A.id_product, A.quantity, B.price, A.quantity*B.price AS summa FROM_incoming AS A, hinnat AS B WHERE A.id_product= B.id_product AND id_incoming= (VALITSE id_incoming FROM incoming WHERE id_vendor=2);

Ymmärrä, että tämä on paljon lyhyempi ja selkeämpi.

Edustus

Olemme jo tarkastelleet syntaksia näkymien luomiseen. Kun näkymät on luotu, niitä voidaan käyttää samalla tavalla kuin taulukoita. Toisin sanoen suorita kyselyitä niitä vastaan, suodata ja lajittele tiedot ja yhdistä joitain näkymiä muihin. Toisaalta tämä on erittäin kätevä tapa säilyttää usein käytettyjä monimutkaiset kyselyt(kuten esimerkissämme).

Muista kuitenkin, että näkymät eivät ole taulukoita, eli ne eivät tallenna tietoja, vaan vain hakevat sen muista taulukoista. Näin ollen ensinnäkin, kun taulukoiden tiedot muuttuvat, myös esitystulokset muuttuvat. Ja toiseksi, kun näkymää pyydetään, vaaditut tiedot etsitään, eli DBMS:n suorituskykyä heikennetään. Siksi sinun ei pitäisi käyttää niitä väärin.

Siinä oppikirja opit käyttämään SUMMA-toiminto V SQL Server(Transact-SQL) syntaksin ja esimerkkien kera.

Kuvaus

SQL Serverissä (Transact-SQL) SUMMA-toiminto palauttaa lausekkeen kokonaisarvon.

Syntaksi

SUM-funktion syntaksi SQL Serverissä (Transact-SQL) on:

TAI SUMMA-funktion syntaksi ryhmiteltäessä tuloksia yhden tai useamman sarakkeen mukaan on:

Parametrit tai argumentit

lauseke1 , lauseke2 , ... lauseke_n ovat lausekkeita, jotka eivät sisälly SUM-funktioon ja jotka on sisällytettävä GROUP BY -lauseeseen SQL-käskyn lopussa.
aggregate_expression on sarake tai lauseke, joka yhdistetään.
taulukot - taulukot, joista haluat saada tietueita. FROM-lauseessa on oltava vähintään yksi taulukko.
WHERE ehdot - valinnainen. Nämä ovat ehdot, jotka valittujen tietueiden on täytettävä.

Sovellus

SUM-funktiota voidaan käyttää seuraavissa SQL Serverin (Transact-SQL) versioissa:
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

Esimerkki yhdellä kentällä

Katsotaanpa joitain SQL Server SUM -funktioesimerkkejä ymmärtääksemme, kuinka SUM-funktiota käytetään SQL Serverissä (Transact-SQL).

Voit esimerkiksi selvittää kaikkien sellaisten tuotteiden kokonaismäärän, joiden määrä on suurempi kuin 10.

Tässä SUM-funktion esimerkissä olemme aliasoineet lausekkeen SUM(määrä) "Kokonaismäärä". Kun palautat tulosjoukon - "Kokonaismäärä" näkyy kentän nimenä.

Esimerkki DISTINCT:n käytöstä

Voit käyttää DISTINCT-operaattoria SUMMA-toiminnossa. Esimerkiksi alla oleva SQL-lause palauttaa kokonaispalkan yksilöllisillä palkkaarvoilla, kun palkka on alle 29 000 dollaria vuodessa.

Jos molemmat palkat olisivat 24 000 dollaria vuodessa, vain toista näistä arvoista käytettäisiin SUMMA-funktiossa.

Esimerkki kaavan käytöstä

SUM-funktion sisältämän lausekkeen ei tarvitse olla yksittäinen kenttä. Voit myös käyttää kaavaa. Voit esimerkiksi laskea kokonaispalkkion.

Transact-SQL

SELECT SUM(myynti * 0,03) AS "Total Commission" tilauksista;

SELECT SUM (myynti * 0,03 ) AS "Kokonaispalkkio"

FROM tilauksista ;

Esimerkki GROUP BY:n käytöstä

Joissakin tapauksissa sinun on käytettävä GROUP BY -operaattoria SUM-toiminnon kanssa.

Opitaan tekemään yhteenveto. Ei, nämä eivät ole SQL:n tutkimisen tuloksia, vaan tietokantataulukoiden sarakkeiden arvojen tuloksia. SQL-aggregaattifunktiot toimivat sarakkeen arvoilla tuottaen yhden tuloksena olevan arvon. Yleisimmin käytetyt SQL-koontifunktiot ovat SUM, MIN, MAX, AVG ja COUNT. On tarpeen erottaa kaksi aggregaattifunktioiden käyttötapausta. Ensinnäkin koostefunktioita käytetään yksinään ja ne palauttavat yhden tuloksena olevan arvon. Toiseksi koostefunktioita käytetään SQL GROUP BY -lauseen kanssa, toisin sanoen ryhmittely kenttien (sarakkeiden) mukaan, jotta saadaan tuloksena olevat arvot kussakin ryhmässä. Tarkastellaan ensin tapauksia, joissa aggregaattifunktioita käytetään ilman ryhmittelyä.

SQL SUM -toiminto

SQL SUM -funktio palauttaa tietokantataulukon sarakkeen arvojen summan. Sitä voidaan käyttää vain sarakkeissa, joiden arvot ovat numeroita. SQL-kyselyt jotta tuloksena oleva summa alkaa näin:

VALITSE SUMMA (COLUMN_NAME)...

Tätä lauseketta seuraa FROM (TABLE_NAME), ja sitten ehto voidaan määrittää WHERE-lauseella. Lisäksi sarakkeen nimeä voi edeltää DISTINCT, mikä tarkoittaa, että vain ainutlaatuisia arvoja. Oletusarvoisesti kaikki arvot otetaan huomioon (tätä varten voit määrittää ei DISTINCT, vaan ALL, mutta sanaa ALL ei vaadita).

Jos haluat suorittaa tämän oppitunnin tietokantakyselyitä MS SQL Serverissä, mutta tätä DBMS:ää ei ole asennettu tietokoneellesi, voit asentaa sen tämän linkin ohjeiden mukaisesti. .

Ensin työskentelemme yritystietokannan kanssa - Yritys1. Skripti tämän tietokannan luomiseen, sen taulukoihin ja taulukoiden täyttämiseen tiedoilla on tämän linkin tiedostossa .

Esimerkki 1. Siellä on yritystietokanta, joka sisältää tiedot sen toimialoista ja työntekijöistä. Henkilöstötaulukossa on myös sarake, jossa on tiedot työntekijöiden palkoista. Valinta taulukosta näyttää tältä (kuvaa saa suuremmaksi klikkaamalla sitä hiiren vasemmalla painikkeella):

Kaikkien palkkojen summan saamiseksi käytämme seuraavaa kyselyä (MS SQL Serverissä - edellisellä versiolla USE company1;):

VALITSE SUMMA (Palkka) Henkilökunnalta

Tämä kysely palauttaa arvon 287664.63.

Ja nyt . Harjoituksissa alamme jo monimutkaista tehtäviä ja lähennämme niitä käytännössä.

SQL MIN -toiminto

SQL MIN -toiminto toimii myös sarakkeissa, joiden arvot ovat numeroita, ja palauttaa sarakkeen kaikista arvoista minimin. Tällä funktiolla on samanlainen syntaksi kuin SUM-funktiolla.

Esimerkki 3. Tietokanta ja taulukko ovat samat kuin esimerkissä 1.

Täytyy tietää minimi palkat osaston työntekijät numerolla 42. Tätä varten kirjoita seuraava kysely (MS SQL Serverissä - edellisellä versiolla USE company1;):

Kysely palauttaa arvon 10505.90.

Ja uudelleen harjoitusta varten itsenäinen päätös . Tässä ja joissakin muissa harjoituksissa tarvitset henkilöstötaulukon lisäksi myös Org-taulukon, joka sisältää tiedot yrityksen toimialoista:


Esimerkki 4. Henkilökunta-taulukkoon lisätään Organisaatio-taulukko, joka sisältää tiedot yrityksen osastoista. Tulosta yhden työntekijän vähimmäistyövuosien Bostonissa sijaitsevalla osastolla.

SQL MAX -toiminto

SQL MAX -toiminto toimii samalla tavalla ja sillä on samanlainen syntaksi, jota käytetään, kun sinun on määritettävä suurin arvo kaikkien sarakkeen arvojen joukosta.

Esimerkki 5.

Meidän on selvitettävä osastonumeron 42 työntekijöiden enimmäispalkka. Tee tämä kirjoittamalla seuraava kysely (MS SQL Serverissä - etuliitteellä USE yritys1;):

Kysely palauttaa arvon 18352.80

On aika harjoituksia itsenäiseen ratkaisuun.

Esimerkki 6. Työskentelemme jälleen kahden pöydän kanssa - Staff ja Org. Näytä osaston nimi ja yhden työntekijän saaman välityspalkkion enimmäisarvo osastoryhmään (Divisioona) kuuluvalla osastolla. Käyttää LIITY (pöytien liittäminen) .

SQL AVG -toiminto

Se, mitä sanotaan edellisten funktioiden syntaksista, pätee myös SQL AVG -funktiolle. Tämä funktio palauttaa sarakkeen kaikkien arvojen keskiarvon.

Esimerkki 7. Tietokanta ja taulukko ovat samat kuin edellisissä esimerkeissä.

Oletetaan, että haluat selvittää osaston numero 42 työntekijöiden keskimääräisen palvelusajan. Kirjoita tähän seuraava kysely (MS SQL Serverissä - edellisellä versiolla USE company1;):

Tuloksena 6.33

Esimerkki 8. Työskentelemme yhden pöydän kanssa - Henkilökunta. Näytä 4–6 vuoden kokemuksen omaavien työntekijöiden keskipalkka.

SQL COUNT -toiminto

SQL COUNT -funktio palauttaa tietokantataulukon tietueiden määrän. Jos määrität kyselyssä SELECT COUNT(COLUMN_NAME) ..., tuloksena on tietueiden lukumäärä ottamatta huomioon niitä tietueita, joissa sarakkeen arvo on NULL (määrittämätön). Jos käytät tähteä argumenttina ja aloitat SELECT COUNT(*) ... -kyselyn, tuloksena on taulukon kaikkien tietueiden (rivien) lukumäärä.

Esimerkki 9. Tietokanta ja taulukko ovat samat kuin edellisissä esimerkeissä.

Haluat tietää kaikkien palkkioita saavien työntekijöiden lukumäärän. Työntekijöiden lukumäärä, joiden Comm-sarakkeen arvot eivät ole NULL-arvoja, palautetaan seuraavalla kyselyllä (MS SQL Serverissä - etuliitteellä USE yritys1;):

SELECT COUNT (Comm) FROM Henkilökunnalta

Tuloksena on 11.

Esimerkki 10. Tietokanta ja taulukko ovat samat kuin edellisissä esimerkeissä.

Jos haluat saada selville taulukon tietueiden kokonaismäärän, käytä COUNT-funktion argumenttina tähdellä varustettua kyselyä (MS SQL Serverissä - edellisellä rakenteella USE company1;):

VALITSE LUKEMINEN (*) Henkilökunnalta

Tuloksena on 17.

Seuraavassa harjoitus itsenäiseen ratkaisuun sinun on käytettävä alikyselyä.

Esimerkki 11. Työskentelemme yhden pöydän kanssa - Henkilökunta. Näytä suunnitteluosaston työntekijöiden lukumäärä (Plains).

Koontifunktiot SQL GROUP BY:n avulla

Tarkastellaan nyt koontifunktioiden käyttöä yhdessä SQL GROUP BY -käskyn kanssa. SQL GROUP BY -käskyä käytetään tulosarvojen ryhmittelyyn tietokantataulukon sarakkeiden mukaan. Sivustolla on tälle operaattorille erikseen omistettu oppitunti .

Työskentelemme "Ads Portal 1" -tietokannan kanssa. Skripti tämän tietokannan luomiseen, sen taulukkoon ja tietotaulukon täyttämiseen on tämän linkin tiedostossa .

Esimerkki 12. Ilmoitusportaalista on siis tietokanta. Siinä on Mainokset-taulukko, joka sisältää tiedot viikon lähetetyistä mainoksista. Luokka-sarake sisältää tietoja suurista mainosluokista (esimerkiksi Kiinteistöt) ja Osat-sarake sisältää tiedot luokkiin kuuluvista pienemmistä osista (esim. Asunnot ja kesämökit -osat ovat osa Kiinteistöt-luokkaa). Yksiköt-sarakkeessa on tiedot lähetettyjen ilmoitusten määrästä ja Raha-sarakkeesta tiedot ilmoitusten lähettämisestä saaduista rahamääristä.

KategoriaOsaYksikötRaha
KuljetusAutot110 17600
KiinteistötHuoneistot89 18690
KiinteistötDachas57 11970
KuljetusMoottoripyörät131 20960
RakennusmateriaalitTaulut68 7140
Sähkötekniikkatelevisiot127 8255
SähkötekniikkaJääkaapit137 8905
RakennusmateriaalitRegips112 11760
VapaaKirjat96 6240
KiinteistötKotona47 9870
VapaaMusiikki117 7605
VapaaPelit41 2665

Selvitä SQL GROUP BY -käskyn avulla, kuinka paljon rahaa ansait julkaisemalla mainoksia kussakin luokassa. Kirjoitamme seuraavan kyselyn (MS SQL Serverissä - edeltävällä konstruktiolla USE adportal1;):

VALITSE Luokka, SUMMA (Raha) Rahana MAINOSRYHMÄSTÄ Kategorian mukaan

Esimerkki 13. Tietokanta ja taulukko ovat samat kuin edellisessä esimerkissä.

Selvitä SQL GROUP BY -käskyn avulla, missä kunkin luokan osassa oli eniten luetteloita. Kirjoitamme seuraavan kyselyn (MS SQL Serverissä - edeltävällä konstruktiolla USE adportal1;):

VALITSE luokka, osa, MAX (yksikköä) AS maksimi MAINOSRYHMÄSTA luokan mukaan

Tuloksena on seuraava taulukko:

Kokonais- ja yksittäiset arvot voidaan saada yhdessä taulukossa kyselyn tulosten yhdistäminen UNION-operaattorilla .

Relaatiotietokannat ja SQL-kieli




Yläosa