Procentfunktioner för DB2

IBMs DB2-databashanteringsprogramvara använder Structured Query Language, eller SQL, för att skapa och hantera databasstrukturer och uppdatera informationen i dem. SQL är ett industristandard programmeringsspråk som innehåller matematiska funktioner för utförande av detaljerade analyser av databasdata. Med SQL kan du enkelt beräkna procentsatser för varje post i en databastabell, för grupper av poster och för totalsummor.

VÄLJ uttalande

DB2s SQL använder SELECT-uttalandet för att skapa rapporter från databasinformation. Den grundläggande syntaxen för uttalandet är ordet VÄLJ följt av en lista med fält, tabellnamn och valfria klausuler som WHERE och ORDER BY för testning och sortering av data. Fälten kan komma direkt från en tabell eller de kan beräknas värden baserat på tabellfält. Du kan till exempel lista innehållet i en ordertabell, inklusive en produktkod, beskrivning, pris och kvantitet, och du kan multiplicera priset med kvantiteten för att få summan.

Enkel uppdelning

Den enklaste formen av procent i en DB2 SELECT-sats multiplicerar ett fält med 100 och dividerar sedan med en summa för att erhålla procentsatsen. Följande SQL listar till exempel ett kundnamn, en order, en totalsumma och en procentandel av den totala för ordern:

VÄLJ namn, ordernummer, item_total, item_total * 100 / order_total AS procent från order_table;

Om du beräknar procentsatser baserat på heltalsfält, multiplicerar det första objektet med 100 att en efterföljande division returnerar en meningsfull procentsats. Om du istället delar ett heltal med ett större heltal och multiplicerar resultatet med 100, returnerar SQL noll.

Decimalfunktion

DB2: s version av SQL har en matematisk funktion som heter DECIMAL. Genom att använda den med en procentfunktion ger DECIMAL dig kontroll över antalet decimaler i resultatet. Följande SQL SELECT-uttalande illustrerar användningen av DECIMAL i procentberäkningar:

VÄLJ namn, ordernummer, DECIMAL (item_total, item_total * 100.0 / order_total, 5,2) AS procentsats, order_total FROM order_table;

DECIMAL-funktionen har tre argument: antalet eller det beräknade värdet, antalet siffror för precision och antalet siffror efter decimaltalet. Här är precisionen fem och antalet siffror efter decimaltalet är två. Detta SELECT-uttalande ger en procentsats som ett tal med fem siffror totalt och två decimaler, till exempel 56.05 eller 199.10.

Användardefinierade funktioner

För ofta använda, komplexa beräkningar som resulterar i en procentsats, överväg att använda en UDF eller användardefinierad funktion. DB2 lagrar en UDF som ett objekt, så det blir en del av databasen tillsammans med fält, tabeller och andra objekt. CREATE FUNCTION-satsen, följt av andra SQL-satser, skriver en funktionspost i databasen. Istället för att upprepa de komplexa beräkningarna i dina SELECT-uttalanden kan du hänvisa till funktionen, vilket gör din programmering enklare och mer tillförlitlig.