Oracle Database
Statistische functies
Zoeken…
De mediaan van een set waarden berekenen
De MEDIAN-functie sinds Oracle 10g is een eenvoudig te gebruiken aggregatiefunctie:
SELECT MEDIAN(SAL)
FROM EMP
Het geeft de mediaan van de waarden terug
Werkt ook op DATETIME
waarden.
Het resultaat van MEDIAN wordt berekend door eerst de rijen te ordenen. Met N als het aantal rijen in de groep, berekent Oracle het rijnummer (RN) van belang met de formule RN = (1 + (0,5 * (N-1)). Het eindresultaat van de aggregatiefunctie wordt berekend door lineair interpolatie tussen de waarden van rijen op rijnummers CRN = CEILING (RN) en FRN = FLOOR (RN).
Sinds Oracle 9i kunt u PERCENTILE_CONT gebruiken dat hetzelfde werkt als de MEDIAN-functie met standaardwaarden voor percentielwaarden van 0,5
SELECT PERCENTILE_CONT(.5) WITHIN GROUP(order by SAL)
FROM EMP
VARIANTIE
Variantie meet hoe ver een vast aantal verspreid is over het gemiddelde. Vanuit praktisch perspectief is het een kwadraatafstand van het gemiddelde (midden) - hoe groter het getal, hoe verder het punt is.
In het volgende voorbeeld wordt variantie van salariswaarden geretourneerd
SELECT name, salary, VARIANCE(salary) "Variance"
FROM employees
STDDEV
STDDEV retourneert de standaarddeviatie van het voorbeeld van expr, een reeks getallen. U kunt het gebruiken als zowel een verzamel- als een analytische functie. Het verschilt van STDDEV_SAMP doordat STDDEV nul retourneert wanneer het slechts 1 rij invoergegevens heeft, terwijl STDDEV_SAMP null retourneert.
Oracle Database berekent de standaarddeviatie als de vierkantswortel van de variantie die is gedefinieerd voor de VARIANCE-aggregatiefunctie.
Deze functie neemt als argument elk numeriek gegevenstype of elk niet-numeriek datatype dat impliciet kan worden geconverteerd naar een numeriek datatype. De functie retourneert hetzelfde gegevenstype als het numerieke gegevenstype van het argument.
Als u DISTINCT opgeeft, kunt u alleen de query_partition_clause van de analytic_clause opgeven. De order_by_clause en windowing_clause zijn niet toegestaan.
Het volgende voorbeeld wordt de standaard deviatie van de lonen in het monster hr.employees tabel:
Waar hr Schema is en werknemers een tabelnaam.
SELECT STDDEV(salary) "Deviation"
FROM employees;
Deviation
----------
3909.36575
De query in het volgende voorbeeld retourneert de cumulatieve standaardafwijking van de salarissen in Afdeling 80 in de voorbeeldtabel hr.medewerkers, gerangschikt op hire_date:
SELECT last_name, salary,
STDDEV(salary) OVER (ORDER BY hire_date) "StdDev"
FROM employees
WHERE department_id = 30;
LAST_NAME SALARY StdDev
------------------------- ---------- ----------
Raphaely 11000 0
Khoo 3100 5586.14357
Tobias 2800 4650.0896