PostgreSQL

Как использовать функцию PostgreSQL ARRAY_AGG?

Как использовать функцию PostgreSQL ARRAY_AGG?
Агрегатный метод ARRAY_AGG () - один из методов, используемых в PostgreSQL, который принимает несколько входных значений и объединяет их в массив, включая значения NULL. Он возвращает массив со всеми значениями из входной группы как часть. Чтобы отсортировать набор результатов с помощью функции PostgreSQL ARRAY_AGG, вы будете использовать фразу ORDER BY. При необходимости вы также можете использовать предложение WHERE.

Чтобы понять агрегированный метод ARRAY_Agg (), вам нужно выполнить несколько примеров. Для этого откройте оболочку командной строки PostgreSQL. Если вы хотите включить другой Сервер, сделайте это, указав его имя. В противном случае оставьте место пустым и нажмите кнопку Enter, чтобы перейти к базе данных. Если вы хотите использовать базу данных по умолчанию, e.грамм., Postgres, оставьте все как есть и нажмите Enter; в противном случае напишите имя базы данных, e.грамм., «Тест», как показано на изображении ниже. Если вы хотите использовать другой порт, запишите его, в противном случае просто оставьте его как есть и нажмите Enter, чтобы продолжить. Он попросит вас добавить имя пользователя, если вы хотите переключиться на другое имя пользователя. Добавьте имя пользователя, если хотите, в противном случае просто нажмите «Ввод». В конце вы должны предоставить свой текущий пароль пользователя, чтобы начать использовать командную строку с помощью этого конкретного пользователя, как показано ниже. После успешного ввода всей необходимой информации все готово.

Использование ARRAY_AGG в одном столбце:

Рассмотрим таблицу «человек» в базе данных «тест», имеющую три столбца; «Id», «name» и «age». В столбце «id» указаны идентификаторы всех лиц. В то время как поле «имя» содержит имена людей, а столбец «возраст» - возраст всех людей.

>> ВЫБРАТЬ * ОТ человека;

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

>> ВЫБРАТЬ ARRAY_AGG (имя) ОТ человека;

Использование ARRAY_AGG для нескольких столбцов с предложением ORDER BY:

Пример 01:

Применяя функцию ARRAY_AGG к нескольким столбцам при использовании предложения ORDER BY, рассмотрите одну и ту же таблицу «person» в «test» базы данных, имеющую три столбца; «Id», «name» и «age». В этом примере мы будем использовать предложение GROUP BY.

>> ВЫБРАТЬ * ОТ человека;

Мы объединили результат запроса SELECT в список массивов, используя два столбца «имя» и «возраст». В этом примере мы использовали пробел как специальный символ, который до сих пор использовался для объединения обоих этих столбцов. С другой стороны, мы получали столбец «id» отдельно. Результат конкатенированного массива будет показан в столбце «персональные данные» во время выполнения. Набор результатов будет сначала сгруппирован по «id» человека и отсортирован в порядке возрастания поля «id». Давайте попробуем следующую команду в оболочке и сами увидим результаты. Вы можете видеть, что у нас есть отдельный массив для каждого конкатенированного значения имени и возраста на изображении ниже.

>> ВЫБЕРИТЕ id, ARRAY_AGG (имя || "|| возраст) как персональные данные ОТ человека ГРУППА ПО идентификатору ORDER BY id;



Пример 02:

Рассмотрим недавно созданную таблицу «Сотрудник» в базе «test» с пятью столбцами; «Идентификатор», «имя», «зарплата», «возраст» и «адрес электронной почты». В таблице хранятся все данные о 5 Сотрудниках, работающих в компании. В этом примере мы будем использовать специальный символ '-' для объединения двух полей вместо использования пробела при использовании предложений GROUP BY и ORDER BY.

>> ВЫБРАТЬ * ОТ сотрудника;

Мы объединяем данные двух столбцов, «имя» и «электронная почта» в массив, используя '-' между ними. Как и раньше, отчетливо выделяем столбец «id». Результаты объединенных столбцов будут отображаться как «emp» во время выполнения. Набор результатов сначала будет собран по «id» человека, а затем он будет организован в порядке возрастания столбца «id». Давайте попробуем выполнить очень похожую команду в оболочке с небольшими изменениями и посмотрим, что будет. Из приведенного ниже результата вы получили отдельный массив для каждого конкатенированного значения имя-адрес электронной почты, представленного на рисунке, в то время как знак '-' используется в каждом значении.

>> SELECT id, ARRAY_AGG (name || '-' || email) AS emp FROM Сотрудник ГРУППА ПО идентификатору ORDER BY id;

Использование ARRAY_AGG для нескольких столбцов без предложения ORDER BY:

Вы также можете попробовать метод ARRAY_AGG для любой таблицы без использования предложений ORDER BY и GROUP BY. Предположим, что недавно созданная таблица «субъект» в вашей старой базе данных «test» имеет три столбца; «Id», «fname» и «lname». Таблица содержит данные об именах и фамилиях актеров вместе с их идентификаторами.

>> ВЫБРАТЬ * ОТ актера;

Итак, объедините два столбца «fname» и «lname» в списке массивов, используя пробел между ними, как и в последних двух примерах. Мы не вырезали столбец id явно, и мы использовали функцию ARRAY_AGG в запросе SELECT. Конкатенированный столбец результирующего массива будет представлен как «акторы». Попробуйте выполнить приведенный ниже запрос в командной оболочке и взгляните на получившийся массив. Мы получили один массив с представленным объединенным значением имени и электронной почты, отделенным запятой от результата.

Заключение:

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

Добавьте жесты мыши в Windows 10 с помощью этих бесплатных инструментов
В последние годы компьютеры и операционные системы сильно эволюционировали. Было время, когда пользователям приходилось использовать команды для навиг...
Контроль и управление перемещением мыши между несколькими мониторами в Windows 10
Диспетчер мыши с двумя дисплеями позволяет контролировать и настраивать движение мыши между несколькими мониторами, замедляя ее движения возле границы...
WinMouse позволяет настраивать и улучшать движение указателя мыши на ПК с Windows
Если вы хотите улучшить функции указателя мыши по умолчанию, используйте бесплатное ПО WinMouse. Он добавляет дополнительные функции, которые помогут ...