Я переношу данные из MS SQL в Netezza, поэтому мне нужно найти количество строк для всех таблиц в базе данных (в Netezza). Любой запрос для того же будет очень полезен для меня, поскольку я совершенно новичок в этом. Заранее спасибо.
Количество строк всех таблиц в базе данных в Netezza
Ответы (4)
Этот запрос делает это прямо из _v_table:
SELECT TABLENAME, RELTUPLES FROM _V_TABLE where objtype = 'TABLE' ORDER BY RELTUPLES
что-то вроде этого должно работать:
select 'select '||chr(39)||tablename||chr(39)||' as entity, count(1) from '||tablename||' union all'
from _v_table
where object_type ='TABLE';
скопируйте/вставьте результат, удалите последний «союз всех».
Я никогда не использовал Netezza, но погуглил и нашел:
http://www.folkstalk.com/2009/12/netezza-count-analytic-functions.html
SELECT dept_id,
salary,
COUNT(1) OVER() total_cnt
FROM Employees
Если вы не знаете, какие таблицы существуют:
http://www.folkstalk.com/2009/11/netezza-system-catalog-views.html
select * from _v_table;
Другой способ получить количество строк для таблицы (если у вас есть доступ к уровню операционной системы) — использовать команду Netezza nz_get_table_rowcount. Вы можете ввести «nz_get_table_rowcount -h», чтобы получить весь текст справки по этой команде, но формат следующий:
Использование: nz_get_table_rowcount [база данных]
Цель: выполнить «SELECT COUNT(*) FROM;» чтобы получить его истинное количество строк. Таким образом, этот сценарий приводит к выполнению полного сканирования таблицы.
Входные данные: имя базы данных не является обязательным. Если не указано, вместо него будет использоваться $NZ_DATABASE.
The table name is required. If only one argument is specified, it
will be taken as the table name.
If two arguments are specified, the first will be taken as the
database name and the second will be taken as the table name.
Выходы: возвращается количество строк таблицы.
Используйте эту команду в сценарии оболочки для циклического просмотра всех таблиц в базе данных. Используйте nz_get_table_names, чтобы получить список таблиц в базе данных.