Перейти к содержимому

Как посчитать количество столбцов в таблице sql

  • автор:

Как я могу получить количество (*) всех столбцов в таблице? Использование PostgreSql

У меня есть несколько таблиц, в нескольких из которых есть сотни столбцов. Мне нужно получить количество ненулевых значений для каждого столбца, и я делаю это вручную. Я хотел бы выяснить способ получить все значения для всех столбцов в таблице. Я посмотрел stackoverflow и Google, но не смог найти ответ.

Я пробовал это, но он просто возвращает значение 1 для каждого столбца. Я знаю, что это просто подсчет количества столбцов, а не значений в каждом столбце. Какие-либо предложения?

4 ответа

COUNT(column_name) всегда дает вам количество NON NULL значений.

Создайте общую функцию, подобную этой, которая может принимать имя схемы и имя таблицы в качестве аргументов.

Здесь я создаю операторы select, объединенные UNION ALL s, каждый из которых возвращает значение column_name и его количество для всех столбцов при динамическом выполнении.

Лучший способ, который я нашел, — написать оператор case, чтобы ненулевое значение в столбце стало 1, а нулевое — 0. Затем я суммирую регистр, чтобы получить счетчик ненулевого значения. ценности:

Я вижу в вашем выборе, что вы смотрите на таблицу information_schema.columns. Вы можете динамически сгенерировать код выше, выбрав из этой таблицы:

Вы также можете динамически создавать различные выборки для каждого столбца в рассматриваемой таблице:

На самом деле нет волшебного способа сделать это. Если вам нужно проверить каждый из 100 различных столбцов, чтобы увидеть, сколько существует ненулевых значений, вам нужно будет указать каждый из столбцов таблицы.

Самое лучшее, что вы можете сделать, — это использовать системные каталоги для написания ваших запросов:

Возможно, вам потребуется добавить заключенные в кавычки идентификаторы, если в именах столбцов есть пробелы или другие специальные символы.

Затем вы можете скопировать этот вывод в другой запрос и добавить недостающие части запроса. Я добавил and is_nullable = ‘YES’ , потому что проверка столбцов NOT NULL — пустая трата времени. Насколько я знаю, этот столбец присутствует в PostgreSQL.

Количество столбцов в наборе результатов

Вернуть количество столбцов в результирующем наборе, возвращенном подготовленным оператором . Если эта подпрограмма возвращает 0, это означает, что подготовленный оператор не возвращает данных (например, UPDATE ). Однако то, что эта процедура возвращает положительное число, не означает, что будет возвращена одна или несколько строк данных. Оператор SELECT всегда будет иметь положительное значение sqlite3_column_count (), но в зависимости от ограничений предложения WHERE и содержимого таблицы он может не возвращать никаких строк.

Чтобы получить общее количество столбцов в таблице SQL

Мне нужен запрос в sql, чтобы получить общие столбцы в таблице.Кто-нибудь может помочь?

9 ответов

этот запрос возвращает имя колонки

и этот получает счет

в MS-SQL Server 7+:

вы можете попробовать запроса ниже:

этот код Показать список таблиц количество столбцов в таблице базы данных.

Если вы хотите знать номер столбца для определенной таблицы в базе данных тогда просто используйте where п. Например, where Table_Name=’name_your_table’

приведенный ниже запрос будет отображаться все таблицы и соответствующее количество столбцов в схеме базы данных

Это можно сделать с помощью: —

исправление к верхнему запросу выше, чтобы позволить запускать из любой базы данных

в моей ситуации я сравнивал количество столбцов схемы таблицы для 2 одинаковых таблиц в 2 базах данных; одна из них является основной базой данных, а другая-архивной базой данных. Я сделал это (SQL 2012+):

важно отметить, что здесь квалифицируется имя базы данных перед INFORMATION_SCHEMA (что является схемой, например dbo ). Это позволит коду разбиться, если столбцы были добавлены в основную базу данных, а не в архивную базу данных, в которой если процедура была разрешена для запуска потеря данных почти наверняка произойдет.

Функция SQL COUNT()

Оператор SQL COUNT() — функция возвращающая количество записей (строк) таблицы. Запись функции с указанием столбца (синтаксис ниже) вернет количество записей конкретного столбца за исключением NULL записей.

Функция SQL COUNT() имеет следующий синтаксис:

Запись функции с указанием маски «*» вернет количество всех записей в таблице.

Примеры оператора SQL COUNT: Имеется следующая таблица Universities :

ID UniversityName Students Faculties Professores Location Site
1 Perm State National Research University 12400 12 1229 Perm psu.ru
2 Saint Petersburg State University 21300 24 13126 Saint-Petersburg spbu.ru
3 Novosibirsk State University 7200 13 1527 Novosibirsk nsu.ru
4 Moscow State University 35100 39 14358 Moscow msu.ru
5 Higher School of Economics 20335 12 1615 Moscow hse.ru
6 Ural Federal University 57000 19 5640 Yekaterinburg urfu.ru
7 National Research Nuclear University 8600 10 936 Moscow mephi.ru

Пример 1. Вывести число записей таблицы, используя оператор SQL COUNT:

Пример 2. Найти количество университетов расположенных в Москве, используя оператор SQL COUNT:

Пример 3. Найти количество университетов с больше чем 20 факультетами, используя оператор SQL COUNT:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Car Rental HPN Inside the Terminal