MySQL/MariaDB의 PERCENTILE_CONT 대체 방법
이 테이블에서 percentile_cont를 계산하고 싶습니다.Oracle에서 쿼리는 다음과 같습니다.
SELECT PERCENTILE_CONT(0.05) FROM sometable;
MariaDB/MySQL의 대체 기능은 무엇입니까?
MariaDB 10.3.3
소개했다PERCENTILE_CONT
,PERCENTILE_DISC
,그리고.MEDIAN
창 기능
PERCENTILE_CONT()는 윈도우 함수로도 사용할 수 있는 순서 집합 집합 함수입니다.정렬 순서에서 지정된 분수에 해당하는 값을 반환합니다.필요한 경우 인접한 입력 항목 간에 보간합니다.
SELECT name, PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY star_rating) OVER (PARTITION BY name) AS pc FROM book_rating;
MariaDB 10.3.3은 윈도 기능의 형태로 이러한 기능을 지원하지만(Lukasz Szozda의 답변 참조), MySQL 8에서도 윈도 기능을 사용하여 에뮬레이트할 수 있습니다.
SELECT DISTINCT first_value(matrix_value) OVER (
ORDER BY CASE WHEN p <= 0.05 THEN p END DESC /* NULLS LAST */
) x,
FROM (
SELECT
matrix_value,
percent_rank() OVER (ORDER BY matrix_value) p,
FROM some_table
) t;
나는 여기에 이것에 대해 좀 더 자세히 블로그에 올렸다.
MariaDB 또는 MySQL에는 내장 함수가 없기 때문에 SQL 수준에서 해결해야 합니다(또는 C로 작성된 사용자 정의 함수를 추가하여...).
SQL 솔루션 개발에 도움이 될 수 있습니다.
http://rpbouman.blogspot.de/2008/07/calculating-nth-percentile-in-mysql.html
마리아DB 10.2에는 윈도우 기능이 있습니다.
MySQL/이전 MariaDB의 경우 단일 값 집합에 대해 N번째 백분위수만 사용한다고 가정합니다.
이는 앱 코드에 가장 적합하지만 저장된 루틴에 내장될 수 있습니다.
- 행의 총수를 카운트합니다.
SELECT COUNT(*) FROM tbl
. - 구축 및 실행
SELECT
와 함께LIMIT n,1
어디에n
는 백분위수 곱하기 카운트로 계산되어 쿼리에 입력됩니다.
두 값 사이에 보간해야 하는 경우 더 복잡해집니다.그것도 필요하세요?
언급URL : https://stackoverflow.com/questions/37804511/alternative-for-percentile-cont-in-mysql-mariadb
'source' 카테고리의 다른 글
행이 있는지 확인하기 위한 두 가지 방법 중 선택(하위 쿼리 수가 더 많은 경우와 왼쪽 조인 수가 더 많은 경우 (0) | 2022.10.19 |
---|---|
Python - SQL 데이터베이스에 암호화 키 저장 (0) | 2022.10.19 |
AWS Aurora용 Spring Boot의 MariaDB 구성 - Reader 인스턴스에 쿼리 라우팅 쓰기 (0) | 2022.10.19 |
pip은 사용자 지정 버전 대신 잘못된 캐시 패키지 버전을 사용합니다. (0) | 2022.10.19 |
여러 인수로 기능하는 함수에 목록 전달 (0) | 2022.10.19 |