PostgreSQL

Як використовувати функцію PostgreSQL ARRAY_AGG?

Як використовувати функцію PostgreSQL ARRAY_AGG?
Агрегатний метод ARRAY_AGG () є одним із методів, що використовуються в PostgreSQL, який приймає кілька вхідних значень і об'єднує їх у масив, включаючи значення NULL. Він повертає масив з кожним значенням із групи вводу як частини. Для сортування набору результатів за допомогою функції PostgreSQL ARRAY_AGG ви будете використовувати фразу ORDER BY. Ви також можете використовувати речення WHERE, коли це потрібно.

Щоб зрозуміти агрегований метод ARRAY_Agg (), потрібно виконати кілька прикладів. Для цього відкрийте оболонку командного рядка PostgreSQL. Якщо ви хочете увімкнути інший Сервер, зробіть це, вказавши його ім’я. В іншому випадку залиште місце порожнім і натисніть кнопку Enter, щоб перейти до бази даних. Якщо ви хочете використовувати базу даних за замовчуванням, e.g., Postgres, потім залиште його як є і натисніть Enter; в іншому випадку напишіть ім'я бази даних, e.g., "Тест", як показано на зображенні нижче. Якщо ви хочете використовувати інший порт, випишіть його, інакше просто залиште його таким, як є, і натисніть Enter, щоб продовжити. Він попросить вас додати ім’я користувача, якщо ви хочете перейти на інше ім’я користувача. Додайте ім’я користувача, якщо хочете, інакше просто натисніть “Enter”. Врешті-решт, ви повинні надати свій поточний пароль користувача, щоб почати використовувати командний рядок, використовуючи цього конкретного користувача, як показано нижче. Після успішного введення всієї необхідної інформації, ви готові піти.

Використання ARRAY_AGG в одній колонці:

Розглянемо таблицю “людина” в базі даних “тест”, що має три стовпці; “Id”, “name” та “age”. У стовпці "id" є ідентифікатори всіх осіб. Тоді як поле «ім’я» містить імена осіб, а стовпець «вік» - вік усіх осіб.

>> ВИБЕРІТЬ * ВІД людини;

Залежно від таблиці накладних витрат, ми повинні застосувати агрегований метод ARRAY_AGG для повернення списку масиву всіх імен таблиці через стовпець “name”. При цьому вам потрібно використовувати функцію ARRAY_AGG () у запиті SELECT, щоб отримати результат у вигляді масиву. Спробуйте заявлений запит у своїй командній оболонці та отримайте результат. Як бачите, у нас є нижченаведений вихідний стовпець “array_agg”, що має імена, перелічені в масиві для того самого запиту.

>> ВИБЕРІТЬ ARRAY_AGG (ім’я) ВІД людини;

Використання ARRAY_AGG у кількох стовпцях із реченням ORDER BY:

Приклад 01:

Застосовуючи функцію ARRAY_AGG до кількох стовпців під час використання речення ORDER BY, розглянемо одну і ту ж таблицю “людина” в “тесті” бази даних, що має три стовпці; “Id”, “name” та “age”. У цьому прикладі ми будемо використовувати речення GROUP BY.

>> ВИБЕРІТЬ * ВІД людини;

Ми об'єднували результат запиту SELECT у список масивів, використовуючи два стовпці "name" та "age". У цьому прикладі ми використовували пробіл як спеціальний символ, який до цього часу використовувався для об’єднання обох цих стовпців. З іншого боку, ми отримували стовпець “id” окремо. Результат об'єднаного масиву буде показано в стовпці "персональні дані" під час виконання. Набір результатів спочатку буде згруповано за “ідентифікатором” особи та відсортовано за зростанням поля “ідентифікатор”. Давайте спробуємо наведену нижче команду в оболонці і самі побачимо результати. Ви можете бачити, що у нас є окремий масив для кожного об’єднаного значення віку імен на зображенні нижче.

>> ВИБЕРІТЬ ідентифікатор, ARRAY_AGG (ім'я || "|| вік) як персональні дані ВІД особи ГРУПА ЗА ІДЕНТОМ ЗАМОВИТИ ЗА ідентифікатором;



Приклад 02:

Розглянемо нещодавно створену таблицю “Працівник” у рамках “тесту” бази даних, що має п’ять стовпців; “Ідентифікатор”, “ім’я”, “зарплата”, “вік” та “електронна адреса”. У таблиці зберігаються всі дані про 5 співробітників, що працюють у компанії. У цьому прикладі ми будемо використовувати спеціальний символ '-' для об'єднання двох полів замість того, щоб використовувати пробіл, використовуючи речення GROUP BY та ORDER BY.

>> ВИБРАТИ * ВІД Співробітника;

Ми об'єднуємо дані двох стовпців, "ім'я" та "електронна пошта" в масив, використовуючи "-" між ними. Як і раніше, ми чітко витягуємо стовпець “id”. Результати конкатенованих стовпців відображатимуться як “пусті” під час виконання. Набір результатів спочатку збирається за “ідентифікатором” людини, а потім він буде організований у порядку зростання стовпця “ідентифікатор”. Давайте спробуємо дуже подібну команду в оболонці з незначними змінами і побачимо наслідки. З наведеного нижче результату ви отримали окремий масив для кожного об’єднаного значення імені та електронної пошти, представленого на малюнку, тоді як у кожному значенні використовується знак «-».

>> ВИБЕРІТЬ ідентифікатор, ARRAY_AGG (ім'я || '-' || електронна пошта) ЯК ВІД ФОРМИ Співробітника ГРУПА ЗА ІД

Використання ARRAY_AGG у кількох стовпцях без пункту ORDER BY:

Ви також можете спробувати метод ARRAY_AGG у будь-якій таблиці, не використовуючи пропозиції ORDER BY та GROUP BY. Припустимо щойно створену таблицю “актор” у вашій “тест” старої бази даних, що має три стовпці; “Id”, “fname” та “lname”. У таблиці містяться дані про імена та прізвища актора, а також їх ідентифікатори.

>> ВИБЕРІТЬ * З актора;

Отже, об'єднайте два стовпці "fname" і "lname" у списку масивів, використовуючи пробіл між ними, так само, як це було зроблено в останніх двох прикладах. Ми чітко не вийняли стовпець 'id', а також використовували функцію ARRAY_AGG у запиті SELECT. Отриманий масив, об'єднаний стовпець, буде представлений як "актори". Спробуйте вказаний нижче запит у командній оболонці та погляньте на отриманий масив. Ми отримали один масив із представленим значенням об’єднаного імені та електронної пошти, відокремленим комою від результату.

Висновок:

Нарешті, ви майже закінчили виконувати більшість прикладів, необхідних для розуміння агрегованого методу ARRAY_AGG. Спробуйте більше їх у своєму кінці для кращого розуміння та знань.

Open Source Ports of Commercial Game Engines
Free, open source and cross-platform game engine recreations can be used to play old as well as some of the fairly recent game titles. This article wi...
Кращі ігри командного рядка для Linux
Командний рядок - це не просто ваш найбільший союзник при використанні Linux, він також може бути джерелом розваг, оскільки ви можете використовувати ...
Кращі програми для картографування геймпадів для Linux
Якщо ви любите грати в ігри на Linux із геймпадом замість типової системи введення клавіатури та миші, є кілька корисних програм для вас. Багато ігор ...