PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

n-ти процентил изчисления в postgresql

С PostgreSQL 9.4 вече има естествена поддръжка за процентили, имплементирана в Подреден набор от агрегатни функции :

percentile_cont(fraction) WITHIN GROUP (ORDER BY sort_expression) 

непрекъснат процентил:връща стойност, съответстваща на определената фракция в подреждането, интерполирайки между съседни входни елементи, ако е необходимо

percentile_cont(fractions) WITHIN GROUP (ORDER BY sort_expression)

множествен непрекъснат процентил:връща масив от резултати, съответстващи на формата на параметъра fractions, като всеки ненулев елемент се заменя със стойността, съответстваща на този процентил

Вижте документацията за повече подробности:http://www.postgresql.org/docs/current/static/functions-aggregate.html

и вижте тук за някои примери: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. Намерете припокриващи се периоди от време в PostgreSQL

  2. clojure.java.jdbc мързелива заявка

  3. Преброяване на знаци в последователности чрез SQL

  4. Защо не мога да изключа зависими колони от „GROUP BY“, когато агрегирам по ключ?

  5. Избягване на блокиране на PostgreSQL при извършване на операции за групово актуализиране и изтриване