我正在嘗試使用Postgres函數進行一些數據分析。我試過下面的函數導致錯誤。由於我是數據庫功能,程序等新手。我發現很難解決這個問題。使用PostgreSQL函數進行數據分析
實際工作:
我通過表中的所有列要循環,並執行數據剖析即計數,計數不同,空,空不字符列。最小值,最大值爲數字&日期列。請協助
CREATE OR REPLACE FUNCTION data_profiling (TABLE_VALUE VARCHAR)
RETURNS TABLE (
col_value VARCHAR,
DISTINCT_COUNT INT
)
AS $$
DECLARE
var_c Varchar;
BEGIN
FOR var_c IN(SELECT c.column_name,c.table_name
FROM information_schema.columns c
WHERE lower(c.table_name) = TABLE_VALUE)
LOOP
RETURN QUERY EXECUTE 'SELECT ' || var_c ||' as col_name, count(distinct ' || var_c ||') as distinct_count
FROM ' || TABLE_VALUE || ' group by ' || var_c;
END LOOP;
END; $$
LANGUAGE 'plpgsql';
錯誤:
ERROR: structure of query does not match function result type
DETAIL: Returned type character(50) does not match expected type character varying in column 1.
CONTEXT: PL/pgSQL function data_profiling(character varying) line 10 at RETURN QUERY
不,這不是必需的。 –