0
Netezza에서 다음 PostgreSQL 코드를 구현해야합니다. 이것은 기본적으로 이산 값에 대한 히스토그램 데이터로부터 백분위 수를 계산합니다. Postgres 질문에 묻고 대답했다. here.이산 값에 대한 막대 그래프 데이터의 백분율
CREATE TABLE grades
AS
SELECT name, exams, grade_poor, grade_fair, grade_good, grade_vgood
FROM (VALUES
('arun' , 8 , 1 , 4 , 2 , 1),
('neha' , 10 , 3 , 2 , 1 , 4),
('ram' , 5 , 1 , 1 , 3 , 0),
('radha' , 8 , 0 , 3 , 1 , 4)
) AS t(name,exams,grade_poor,grade_fair,grade_good,grade_vgood);
SELECT name, percentile_disc(0.5) WITHIN GROUP (ORDER BY gs1.x)
FROM (
SELECT name,
ARRAY[grade_poor, grade_fair, grade_good, grade_vgood]
FROM grades
) AS t(name, grades)
CROSS JOIN LATERAL generate_series(1,4) AS gs1(x)
CROSS JOIN LATERAL generate_series(1,grades[gs1.x]) AS gs2(x)
GROUP BY name ORDER BY name;
코드는 here
실행 결과 출력 내가 네티가 percentile_disc()
을 지원하는 생각
name | percentile_disc
-------+-----------------
arun | 2
neha | 2
radha | 3
ram | 3
을하지만, 문제의 아이디어는 등급 "값"에 대한 50 번째 백분위 수를 가지고 있었다 - 문제의 결과를 볼 수 . – user3206440