Предлагаете модификации хранилища для более эффективного выполнения запроса?

Предположим, у меня есть запрос, возвращающий атрибут R:a со вторым по величине числом различных значений (возвращаем имя таблицы и имя атрибута). Моя задача:

Для каждого отдельного значения одного и того же атрибута R:a верните отдельное значение как val и количество кортежей в R, имеющих это значение как count. Показать результаты для этих различных значений, так что 20% кортежей R имеют равные или более низкие значения R:a, а 20% кортежей R имеют более высокие или равные значения R:a.

Предложите изменения в хранилище, чтобы запрос выполнялся как можно эффективнее.

Я написал запрос для возврата различных значений и подсчетов, но как мне показать 20% результатов и что вообще означают модификации хранилища в этом контексте?

      SELECT pg_stats.tablename,pg_stats.attname,UNNEST(pg_stats.most_common_vals::text::varchar[]) as val, UNNEST(pg_stats.most_common_freqs)*pg_class.reltuples as count
FROM information_schema.columns,pg_stats,pg_class, 

( SELECT T.tablename,T.attname
FROM (
SELECT pg_stats.tablename, pg_stats.attname, pg_stats.n_distinct as distval
FROM information_schema.columns,pg_stats
WHERE pg_stats.tablename = table_name AND pg_stats.attname = column_name AND (NOT (information_schema.columns.table_schema LIKE 'pg_%' OR information_schema.columns.table_schema = 'information_schema')) AND (information_schema.columns.data_type ='character varying') AND (table_name NOT in (SELECT viewname FROM pg_views))
LIMIT 5) as T
ORDER by T.distval DESC limit 1 offset 1) as temp 


WHERE (pg_stats.tablename = table_name AND pg_stats.attname = column_name AND (NOT 
(information_schema.columns.table_schema LIKE 'pg_%' OR 
information_schema.columns.table_schema 
  = 'information_schema')) AND (information_schema.columns.data_type ='character varying') AND 
  (table_name NOT in (SELECT viewname FROM pg_views))
  AND pg_stats.tablename = relname AND temp.tablename = pg_stats.tablename AND temp.attname = 
  pg_stats.attname);

0 ответов

Другие вопросы по тегам