Как использовать модуль перекрестных таблиц PostrgreSQL

Kak Ispol Zovat Modul Perekrestnyh Tablic Postrgresql



Когда вы запускаете инструкцию SELECT для получения записей из таблицы PostgreSQL, данные возвращаются в табличной форме. Табличная форма не всегда может быть лучшей для чтения данных, особенно если вы хотите сравнить значения. Лучший подход — вернуть записи в виде перекрестной таблицы. Для этого PostgreSQL предлагает функцию tablefunc, позволяющую пользователям использовать функцию перекрестной таблицы для представления целевых данных в виде сводной таблицы. В этом посте подробно описано, как использовать функцию перекрестной таблицы PostgreSQL. Читай дальше!

Работа с модулем перекрестных таблиц PostgreSQL

Удобно иметь возможность указать, как вы хотите, чтобы ваши данные были представлены. Хотя в PostgreSQL данные по умолчанию представлены в табличной форме, модуль перекрестных таблиц дает вам еще один вариант. Вы можете создавать сводные таблицы, используя столбцы «выбрать» из таблицы PostgreSQL для лучшего представления.

Эта удивительная функция появилась в виде расширения для PostgreSQL версии 8.3. Расширение «tablefunc» предлагает функцию перекрестных таблиц, позволяющую использовать сводные таблицы в качестве набора результатов. Давайте приведем пример.







Сначала мы создаем таблицу «результаты» с тремя столбцами, используя следующую команду:





Созданная таблица пуста. Итак, продолжайте и используйте запрос INSERT, чтобы добавить к нему значения. В этом случае мы вставляем несколько записей, как показано ниже:





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



Хотя предыдущий подход работает в большинстве случаев, существует другой вариант получения тех же записей. В этом случае мы хотим создать сводную таблицу. Поэтому мы используем расширение «tablefunc», которое поставляется с PostgreSQL версии 8.3+.


Итак, давайте создадим расширение «tablefunc», чтобы включить его при вызове в запросе. Выполните следующую команду:

СОЗДАТЬ РАСШИРЕНИЕ, ЕСЛИ НЕ СУЩЕСТВУЕТ tablefunc ;

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

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

Чтобы получить такую ​​сводную таблицу, используйте следующий синтаксис:

ВЫБИРАТЬ * ИЗ КРОССТАБА ( ‘ВЫБРАТЬ столбец1 , столбец2 , столбец3 ОТ имени_таблицы ПОРЯДОК ПО критериюa’ )

КАК новое_имя ( тип_данных столбца1 , тип_данных столбца2 , столбец_n тип_данных ) ;

Используя созданный нами пример таблицы, наша команда выглядит следующим образом:

Прежде чем мы увидим результаты, давайте разберемся, как работает команда модуля перекрестной таблицы. Во-первых, инструкция SELECT возвращает три столбца. Первый столбец рассматривается как идентификатор строки. В нашем случае это столбец «факультет». Второй столбец, который является столбцом «Категория», представляет категории сводной таблицы. Наконец, третий столбец содержит значения для категорий. В нашем случае это количество студентов в каждой категории.

Понимая это, как только мы нажмем клавишу «Ввод», мы получим сводную таблицу следующего вида:

Основываясь на возвращенной сводной таблице, мы видим, что она работает как двумерный массив, где первый столбец в инструкции SELECT — это первый массив, а второй столбец — второй массив в измерении. Третий столбец содержит значения для элементов второго массива.

Заключение

Кросс-таблица PostgreSQL удобна для представления значений таблицы в виде сводной таблицы. Чтобы использовать модуль перекрестной таблицы, вы должны вернуть три столбца в операторе SELECT, и в этом посте представлен практический пример его использования. Кроме того, мы объяснили, как модуль кросс-таблицы работает при создании сводной таблицы, которая использует ту же логику, что и двумерный массив.