PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Obliczenia n-tego percentyla w postgresql

W PostgreSQL 9.4 dostępna jest teraz natywna obsługa percentyli, zaimplementowana w Ordered-Set Aggregate Functions :

percentile_cont(fraction) WITHIN GROUP (ORDER BY sort_expression) 

ciągły percentyl:zwraca wartość odpowiadającą określonemu ułamkowi w porządkowaniu, w razie potrzeby interpolując między sąsiednimi elementami wejściowymi

percentile_cont(fractions) WITHIN GROUP (ORDER BY sort_expression)

wielokrotny ciągły percentyl:zwraca tablicę wyników pasujących do kształtu parametru frakcji, przy czym każdy niezerowy element jest zastępowany wartością odpowiadającą temu percentylowi

Więcej informacji znajdziesz w dokumentacji:http://www.postgresql.org/docs/current/static/functions-aggregate.html

i zobacz tutaj kilka przykładów: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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pg_ctl Wskazówki i porady

  2. Zainstaluj icu4c w wersji 63 z Homebrew

  3. Rejestrowanie audytów dla PostgreSQL

  4. Funkcja działa szybciej bez modyfikatora STRICT?

  5. Jak uzyskać tekst SQL z wyzwalacza zdarzenia Postgres?