Hyödylliset matemaattiset funktiot
ABS, MOD, POWER ja muita.
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); -- 0ABS 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); -- 10ROUND — 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); -- 10CEIL 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); -- -5SIGN — 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); -- 0Matemaattisten 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ä.
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
- Aritmetiikka ja operaattorit
- Pyöristäminen ja katkaiseminen
- Kokonaisluku- ja desimaalijako
- Hyödylliset matemaattiset funktiot