SQL Academy · Oppitunti

Hyödylliset matemaattiset funktiot

ABS, MOD, POWER ja muita.

Oppitunti 4/413 vaihetta

Hyödylliset matemaattiset funktiot on ilmainen SQL Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu SQL Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. SQL Academy-kurssilla on yhteensä 4 oppituntia.

Miksi matemaattiset funktiot ovat tärkeitä

SQL ei ole vain tekstin tallentamista ja hakemista — se on myös tehokas työkalu numeerisiin laskutoimituksiin. Valmiiden matemaattisten funktioiden avulla voitte laskea itseisarvoja, jakojäännöksiä, potensseja ja paljon muuta poistumatta kyselystä.

Tässä oppitunnissa opitte SQL:n hyödyllisimmät numeeriset funktiot: ABS, MOD, POWER, SQRT, ROUND, CEIL, FLOOR ja SIGN.

ABS — Itseisarvo

ABS(n) palauttaa luvun itseisarvon eli epänegatiivisen arvon. Negatiiviset luvut muuttuvat positiivisiksi, kun taas positiiviset luvut ja nolla pysyvät muuttumattomina.

Tämä on hyödyllistä, kun teitä kiinnostaa nollasta mitattu etäisyys suunnan sijaan — esimerkiksi laskettaessa, kuinka kaukana lämpötila on tavoitearvosta riippumatta siitä, onko se tavoitteen ylä- vai alapuolella.

SELECT ABS(-42),  -- 42
       ABS(15),   -- 15
       ABS(0);    -- 0

ABS käytännön kyselyssä

Oletetaan, että transactions-taulussa nostot tallennetaan negatiivisina summina. Voitte käyttää ABS-funktiota näyttääksenne kaikki summat positiivisina suunnasta riippumatta.

CREATE TABLE transactions (
  id     INTEGER,
  amount NUMERIC
);

INSERT INTO transactions VALUES (1, 200.00), (2, -50.00), (3, -120.00), (4, 80.00);

SELECT id,
       amount,
       ABS(amount) AS absolute_amount
FROM   transactions;

MOD — Jakolaskun jakojäännös

MOD(dividend, divisor) palauttaa jakojäännöksen, joka saadaan, kun ensimmäinen luku jaetaan toisella. Se vastaa SQL:ssä monien ohjelmointikielten %-operaattoria.

Klassinen käyttötapaus on luvun parillisuuden tarkistaminen: jos MOD(n, 2) = 0, luku on parillinen, muussa tapauksessa se on pariton.

SELECT MOD(10, 3),  -- 1  (10 = 3*3 + 1)
       MOD(15, 5),  -- 0  (15 = 5*3 + 0)
       MOD(7,  2);  -- 1  (odd number)

MOD käytännön kyselyssä

Voitte käyttää MOD-funktiota WHERE-lausekkeessa rivien suodattamiseen. Tässä valitaan vain tilaukset, joiden id on parillinen.

CREATE TABLE orders (
  id    INTEGER,
  total NUMERIC
);

INSERT INTO orders VALUES (1, 99.99), (2, 45.00), (3, 130.50), (4, 22.00), (5, 75.00), (6, 60.00);

SELECT id, total
FROM   orders
WHERE  MOD(id, 2) = 0;

POWER — Korottaminen potenssiin

POWER(base, exponent) korottaa luvun annettuun potenssiin. POWER(2, 10) antaa tulokseksi 1024, ja POWER(9, 0.5) antaa tulokseksi 3 eli luvun 9 neliöjuuren.

Tämä funktio on hyödyllinen korkoa korolle -laskelmissa, pinta-alakaavoissa ja kaikissa tilanteissa, joihin liittyy eksponentiaalista kasvua.

SELECT POWER(2, 10),   -- 1024
       POWER(3, 3),    -- 27
       POWER(9, 0.5);  -- 3 (square root)

SQRT — Neliöjuuri

SQRT(n) on kätevä lyhenne muodolle POWER(n, 0.5). Se palauttaa epänegatiivisen luvun neliöjuuren.

Jos esimerkiksi tallennatte neliönmuotoisen maa-alueen pinta-alan, voitte laskea sivun pituuden muodolla SQRT(area).

SELECT SQRT(25),   -- 5
       SQRT(2),    -- 1.4142...
       SQRT(100);  -- 10

ROUND — Pyöristäminen N desimaaliin

ROUND(n, d) pyöristää arvon n d desimaalin tarkkuuteen. Jos jätätte d:n pois tai annatte sille arvon 0, tulos on kokonaisluku. d:n negatiiviset arvot pyöristävät desimaalipilkun vasemmalla puolella oleviin kohtiin.

SELECT ROUND(3.14159, 2),  -- 3.14
       ROUND(2.555, 2),    -- 2.56
       ROUND(1234.5, -2),  -- 1200
       ROUND(9.9);         -- 10

CEIL ja FLOOR — aina ylös- tai alaspäin pyöristäminen

CEIL(n) (kirjoitetaan myös muodossa CEILING) pyöristää aina ylöspäin lähimpään kokonaislukuun, kun taas FLOOR(n) pyöristää aina alaspäin.

Käyttäkää CEIL-funktiota, kun tarvitsette jonkin vähimmäismäärän (esimerkiksi rivien tulostamiseen tarvittavien sivujen määrän), ja FLOOR-funktiota, kun tarvitsette suurimman kokonaisluvun, joka ei ylitä arvoa (esimerkiksi kuluneiden kokonaisten viikkojen määrän).

SELECT CEIL(4.1),   -- 5
       CEIL(-4.1),  -- -4
       FLOOR(4.9),  -- 4
       FLOOR(-4.9); -- -5

SIGN — Mikä on luvun suunta?

SIGN(n) palauttaa arvon 1, jos luku on positiivinen, arvon -1, jos se on negatiivinen, ja arvon 0, jos se on nolla. Se on nopea tapa luokitella numeerisia arvoja ilman CASE-lauseketta.

SELECT SIGN(42),   -- 1
       SIGN(-7),   -- -1
       SIGN(0);    -- 0

Matemaattisten funktioiden yhdistäminen

Matemaattisia funktioita voi yhdistää vapaasti samaan lausekkeeseen. Alla oleva esimerkki laskee yksinkertaisen lainan kuukausierän käyttämällä ROUND- ja POWER-funktioita yhdessä ja osoittaa, miten nämä funktiot täydentävät toisiaan käytännön liiketoimintalogiikassa.

-- Monthly payment formula: P * r / (1 - (1+r)^-n)
-- P=10000, annual rate 6% (r=0.005/month), n=24 months
SELECT ROUND(
  10000.0 * 0.005 / (1 - POWER(1 + 0.005, -24)),
  2
) AS monthly_payment;

Pikatarkistus

Testatkaa, miten hyvin ymmärrätte SQL:n matemaattisia funktioita.

Oppitunnin yhteenveto

Hienoa työtä! Tässä on yhteenveto SQL:n matemaattisista funktioista, joihin tutustuitte tässä oppitunnissa:

  • ABS(n) — itseisarvo (poistaa etumerkin)
  • MOD(a, b) — jakojäännös, joka saadaan jaettaessa a luvulla b
  • POWER(base, exp) — korottaa luvun potenssiin
  • SQRT(n) — neliöjuuri
  • ROUND(n, d) — pyöristää d desimaalin tarkkuuteen
  • CEIL(n) — pyöristää aina ylöspäin seuraavaan kokonaislukuun
  • FLOOR(n) — pyöristää aina alaspäin edelliseen kokonaislukuun
  • SIGN(n) — palauttaa luvun etumerkin perusteella arvon 1, -1 tai 0

Nämä funktiot toimivat kaikissa tärkeimmissä SQL-tietokannoissa, ja niitä voi käyttää sisäkkäin tai yhdistää monimutkaisen numeerisen logiikan käsittelemiseen suoraan kyselyissä.

Aloita maksutta

Opi SQL tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
46
Oppitunnit
183

Usein kysytyt kysymykset

Onko oppitunti ”Hyödylliset matemaattiset funktiot” ilmainen?

Kyllä – oppitunnin ”Hyödylliset matemaattiset funktiot” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko SQL Academy-kurssin, päivitä CoddyKit PROhon. SQL Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Hyödylliset matemaattiset funktiot”?

ABS, MOD, POWER ja muita. Harjoittelet SQL Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni SQL Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin SQL Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Hyödylliset matemaattiset funktiot”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä SQL Academy-oppitunnilla?

Kyllä. Jokainen SQL Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Aritmetiikka ja operaattorit
  2. Pyöristäminen ja katkaiseminen
  3. Kokonaisluku- ja desimaalijako
  4. Hyödylliset matemaattiset funktiot
← Takaisin: SQL Academy