Postotne funkcije za DB2

IBM-ov DB2 softver za upravljanje bazom podataka koristi jezik strukturiranih upita ili SQL za stvaranje i upravljanje strukturama baze podataka i ažuriranje informacija u njima. SQL je industrijski standardni programski jezik koji uključuje matematičke funkcije za izvođenje detaljnih analiza podataka baze podataka. Korištenjem SQL-a možete lako izračunati postotke za svaki zapis tablice baze podataka, za grupe zapisa i za ukupne tablice.

SELECT izjava

DB2-ov SQL koristi naredbu SELECT za kreiranje izvještaja od podataka baze podataka. Osnovna sintaksa izraza je riječ SELECT iza koje slijedi popis polja, imena tablica i neobavezne klauzule poput WHERE i ORDER BY za testiranje i sortiranje podataka. Polja mogu doći izravno iz tablice ili se mogu izračunati vrijednosti na temelju polja tablice. Možete, na primjer, navesti sadržaj tablice narudžbi, uključujući šifru proizvoda, opis, cijenu i količinu, a možete pomnožiti cijenu s količinom da biste dobili ukupan iznos.

Jednostavna podjela

Najjednostavniji oblik postotka u DB2 SELECT izrazu množi jedno polje sa 100, a zatim dijeli sa ukupnim brojem da bi se dobio postotak. Na primjer, sljedeći SQL navodi ime kupca, narudžbu, ukupan iznos stavke i postotak ukupnog iznosa za narudžbu:

ODABERI ime, broj_naloga, zbroj_pojedinaka, zbroj_postava * 100 / zbroj_poretka KAO postotak IZ tablice_narudžbe;

Ako izračunate postotke na temelju cjelobrojnih polja, množenjem prve stavke sa 100 osigurava se da naknadno dijeljenje vraća značajan postotak. Ako umjesto toga podijelite cijeli broj s većim i pomnožite rezultat sa 100, SQL vraća nulu.

Decimalna funkcija

DB2-ina verzija SQL-a ima matematičku funkciju koja se naziva DECIMAL. Koristeći ga s funkcijom postotka, DECIMAL vam daje kontrolu nad brojem decimalnih mjesta rezultata. Sljedeća izjava SQL SELECT ilustrira upotrebu DECIMAL-a u izračunu postotaka:

ODABERI ime, broj_naloga, DECIMALNI (ukupan_broj, ukupan_zbroj * 100,0 / ukupan_nalog, 5,2) KAO postotak, ukupan_narudžba IZ tablice_narudžbe;

DECIMALNA funkcija ima tri argumenta: broj ili izračunatu vrijednost, broj znamenki za preciznost i broj znamenki nakon decimale. Ovdje je preciznost pet, a broj znamenki nakon decimale dvije. Ova naredba SELECT stvara postotak kao broj koji ima ukupno pet znamenki i dvije decimale, poput 56.05 ili 199.10.

Korisnički definirane funkcije

Za često korištene složene izračune koji rezultiraju postotkom, razmislite o upotrebi UDF-a ili korisnički definirane funkcije. DB2 pohranjuje UDF kao objekt, pa postaje dio baze podataka zajedno s poljima, tablicama i ostalim objektima. Izraz CREATE FUNCTION, praćen ostalim SQL izrazima, zapisuje unos funkcije u bazu podataka. Umjesto ponavljanja složenih izračuna u vašim SELECT naredbama, možete se pozvati na funkciju, čineći vaše programiranje jednostavnijim i pouzdanijim.