powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Выборка всех пустых полей для всех таблиц схемы
9 сообщений из 9, страница 1 из 1
Выборка всех пустых полей для всех таблиц схемы
    #40024373
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите запросом пожалуйста.
Мне нужно получить список всех пустых (все значения поля = NULL) полей для всех таблиц, которые есть в схеме БД
например
Table_1 | Name
Table_1 | LastName
Table_2 | Comment
Table_6 | FIO
...
...
Рейтинг: 0 / 0
Выборка всех пустых полей для всех таблиц схемы
    #40024735
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица со статистикой, pg_stats, смотрите на столбец null_frac.
Это значение, будет на момент последнего сбора статистики(примерное).
pg_stats


Если нужны точные значения, то это только проверять все таблицы.
...
Рейтинг: 0 / 0
Выборка всех пустых полей для всех таблиц схемы
    #40025008
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Есть таблица со статистикой, pg_stats, смотрите на столбец null_frac.
Это значение, будет на момент последнего сбора статистики(примерное).
pg_stats


Если нужны точные значения, то это только проверять все таблицы.


Спасибо большое. Запрос получился таким:
Код: sql
1.
select * from pg_stats where null_frac=1
...
Рейтинг: 0 / 0
Выборка всех пустых полей для всех таблиц схемы
    #40025011
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин... но по факту стала проверять и видно, что поля с pg_stats.null_frac=1 содержат записи отличные от NULL (((
это наверное из-за устаревшей информации в таблице статистики?

или может в постгресе есть быстрый способ проверки через count как например в оракле ?
Код: plsql
1.
select count(field) from Table where field is not NULL and rownum<=1
...
Рейтинг: 0 / 0
Выборка всех пустых полей для всех таблиц схемы
    #40025012
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга Семенова
блин... но по факту стала проверять и видно, что поля с pg_stats.null_frac=1 содержат записи отличные от NULL (((
это наверное из-за устаревшей информации в таблице статистики?

или может в постгресе есть быстрый способ проверки через count как например в оракле ?
Код: plsql
1.
select count(field) from Table where field is not NULL and rownum<=1



Вам надо ОРИЕНТИРОВАТЬСЯ на статистику для выбора полей для последующего анализа
а вот потом по ним проверять руками есть там not nulls или нет
например через
Код: plsql
1.
select exists (select from TABLE where FIELD IS NOT NULL);



он не сильно быстрый особенно на больших таблицах но вариантов особо других нет.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Выборка всех пустых полей для всех таблиц схемы
    #40025023
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,

я сначала определяю все пустые таблицы через

Код: sql
1.
2.
3.
4.
SELECT NS.NSPACE, CL.RELNAME
FROM PG_CLASS CL
INNER JOIN PG_NAMESPACE NS ON (NS.OID=CL.RELNAMESPACE)
WHERE CL.RELTUPLES=0 AND CL.RELKIND='R' AND NS.NSPNAME='NAME_OF_SCHEMA'



далее я определяю пустые столбцы через
Код: sql
1.
select * from pg_stats where null_frac=1



А мне нужно определить список пустых полей из НЕ пустых таблиц
...
Рейтинг: 0 / 0
Выборка всех пустых полей для всех таблиц схемы
    #40025031
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Статистика считается на основании не полной выборки из таблицы, а только части строк(процент не помню).

Можно отобрать все таблицы\поля где null_frac=1 и дальше перепроверять.
...
Рейтинг: 0 / 0
Выборка всех пустых полей для всех таблиц схемы
    #40025139
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya , а как можно самой запустить сбор статистики в схеме?
...
Рейтинг: 0 / 0
Выборка всех пустых полей для всех таблиц схемы
    #40025169
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Выборка всех пустых полей для всех таблиц схемы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]