PostgreSQL | Как получить уникальные значения столбца?

PostgreSQL | Как получить уникальные значения столбца?

Вводные данные:

 

Тестовая таблица

CREATE TABLE IF NOT EXISTS test.t_2022_11_18 (

    id bigint NOT NULL GENERATED ALWAYS AS IDENTITY (INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 9223372036854775807 CACHE 1 ),

    randomtext text,

    CONSTRAINT t_2022_11_18_id_pkey PRIMARY KEY (id)

)

 

Вставляем тестовые данные

INSERT INTO test.t_2022_11_18 (randomtext) VALUES (unnest(ARRAY[‘A’,’B’,’C’,’C’,’S’,’F’,’F’,’F’,’F’,’F’,’G’,’G’]));

 

— Смотрим на результат вставки

SELECT * FROM test.t_2022_11_18;

 

Вид таблицы после вставки данных:

В столбце randomtext есть повторяющиеся значения - PostgreSQL
В столбце randomtext есть повторяющиеся значения — PostgreSQL

 

Получение уникальных значений столбца через команду SELECT и предложение DISTINCT

 

— Получение уникальных значений столбца через команду SELECT и предложение DISTINCT

SELECT DISTINCT randomtext FROM test.t_2022_11_18;

 

 Само слово «DISTINCT» переводится с английского языка как «отдельный» или «отчётливый«. В нашем случае это указывает на уникальность.

Получили уникальные значения столбца в PostgreSQL
Получили уникальные значения столбца в PostgreSQL

После команды SELECT мы записали предложение DISTINCT, а после DISTINCT мы указали имя столбца, по которому нужно получить уникальные значения.

Обратите внимание. что PostgreSQL возвращает результаты без определённой сортировки по какому-либо из признаков. Что первое нашёл, то и отдал.

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

 

Получение уникальных значений столбца через команду SELECT и предложение GROUP BY

 

— Получение уникальных значений столбца через команду SELECT и предложение GROUP BY

SELECT randomtext FROM test.t_2022_11_18 GROUP BY randomtext;

 

 Выражение с предложением GROUP BY даёт точно такой же результат. Разница заключается в месте написания самого предложения и в указании столбца, по которому нужно выполнить группировку. GROUP BY записывается в конце всего выражения SELECT.

Получили уникальные значения столбца в PostgreSQL предложением GROUP BY
Получили уникальные значения столбца в PostgreSQL предложением GROUP BY

Выдача также непредсказуема по сортировке.

 

Информационные ссылки

Официальный сайт WEB-оболочки pgAdminhttps://www.pgadmin.org

Официальный сайт СУБД PostgreSQLhttps://www.postgresql.org

Команды SQLhttps://postgrespro.ru/docs/postgresql/15/sql-commands

Раздел «Операторы и функции даты/времени» — https://postgrespro.ru/docs/postgresql/15/functions-datetime