sql >> Database >  >> RDS >> PostgreSQL

n-percentielberekeningen in postgresql

Met PostgreSQL 9.4 is er nu native ondersteuning voor percentielen, geïmplementeerd in Ordered-Set Aggregate Functions :

percentile_cont(fraction) WITHIN GROUP (ORDER BY sort_expression) 

continu percentiel:retourneert een waarde die overeenkomt met de opgegeven fractie in de volgorde, indien nodig interpolerend tussen aangrenzende invoeritems

percentile_cont(fractions) WITHIN GROUP (ORDER BY sort_expression)

meervoudig continu percentiel:retourneert een reeks resultaten die overeenkomen met de vorm van de parameter breuken, waarbij elk niet-null-element wordt vervangen door de waarde die overeenkomt met dat percentiel

Zie de documentatie voor meer details:http://www.postgresql.org/docs/current/static/functions-aggregate.html

en zie hier voor enkele voorbeelden:https://github.com/michaelpq/michaelpq.github.io/blob/master/_posts/2014-02-27-postgres-9-4-feature-highlight-within-group.markdown

CREATE TABLE aa AS SELECT generate_series(1,20) AS a;
--SELECT 20

WITH subset AS (
    SELECT a AS val,
        ntile(4) OVER (ORDER BY a) AS tile
    FROM aa
)
SELECT tile, max(val)
FROM subset GROUP BY tile ORDER BY tile;

 tile | max
------+-----
    1 |   5
    2 |  10
    3 |  15
    4 |  20
(4 rows)


  1. OAuth gebruiken om uw ODBC-verbinding met Salesforce.com te verifiëren

  2. SQL Server-zelfstudie - Alles wat u nodig hebt om Transact-SQL onder de knie te krijgen

  3. SQL selecteer alleen rijen met maximale waarde in een kolom

  4. Oracle zweeft versus nummer