0
총계 모드 과 같은 값의 수를 계산해야합니다. 따라서 값 6,7,7,7,8의 경우 모드가 7이고 modal_count가 3이고 modal_share가 3/5입니다.Postgresql : 모달 공유 집계 함수
집계 함수로 모달 수 또는 모달 공유가 필요합니다.
나는 모달 수를 제공하기 위해 모드 기능을 수정했지만, 나는CREATE OR REPLACE FUNCTION _final_mode_count(anyarray)
RETURNS anyelement AS
$BODY$
SELECT COUNT(*)
FROM unnest($1) a
GROUP BY a
ORDER BY COUNT(1) DESC, a
LIMIT 1;
$BODY$
LANGUAGE 'sql' IMMUTABLE;
-- Tell Postgres how to use our aggregate
CREATE AGGREGATE mode_count(anyelement) (
SFUNC=array_append, --Function to call for each row. Just builds the array
STYPE=anyarray,
FINALFUNC=_final_mode_count, --Function to call after everything has been added to array
INITCOND='{}' --Initialize an empty array when starting
);
실행합니다 미세 너무 작은 존재하는 int에 대한 오류를 얻고있다,하지만 난 그것을 호출 할 때 나는
FEHLER: Rückgabetyp von Funktion stimmt nicht überein; deklariert als integer
DETAIL: Eigentlicher Rückgabetyp ist bigint.
CONTEXT: SQL-Funktion „_final_mode_share“ beim Start
********** Error **********
FEHLER: Rückgabetyp von Funktion stimmt nicht überein; deklariert als integer
SQL state: 42P13
Detail: Eigentlicher Rückgabetyp ist bigint.
Context: SQL-Funktion „_final_mode_share“ beim Start
를 얻을 수
어떤 아이디어라도 감사 할 것입니다.
감사합니다. 스택에 오신 것을 환영합니다, 더 많은 postgres 사용자가 들어 오기를 기쁘게 생각합니다 :) – AdrianBR
Thanks! 드디어 시간이 좀 걸리는 긴 시간 lurker : – yieldsfalsehood