sql >> Database teknologi >  >> RDS >> PostgreSQL

n. percentilberegninger i postgresql

Med PostgreSQL 9.4 er der indbygget understøttelse af percentiler nu, implementeret i Ordered-Set Aggregate Functions :

percentile_cont(fraction) WITHIN GROUP (ORDER BY sort_expression) 

kontinuert percentil:returnerer en værdi, der svarer til den angivne brøk i rækkefølgen, interpolerer mellem tilstødende inputelementer, hvis det er nødvendigt

percentile_cont(fractions) WITHIN GROUP (ORDER BY sort_expression)

multipel kontinuert percentil:returnerer en matrix af resultater, der matcher formen af ​​brøkparameteren, hvor hvert ikke-nul-element erstattes af den værdi, der svarer til den percentil

Se dokumentationen for flere detaljer:http://www.postgresql.org/docs/current/static/functions-aggregate.html

og se her for nogle eksempler: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. Sådan finder du et listeelement på en specificeret position i SQL Server

  2. Skalering af din tidsseriedatabase - Sådan skalerer du ganske enkelt TimescaleDB

  3. Implementering af MySQL, MariaDB, Percona Server, MongoDB eller PostgreSQL - gjort nemt med ClusterControl

  4. Sådan fungerer SEC_TO_TIME() i MariaDB