Страницы

Поиск по вопросам

суббота, 23 марта 2019 г.

В чем разница между DISTINCT и GROUP BY?

Читаем:
Оператор SQL DISTINCT используется для указания на то, что следует работать только с уникальными значениями столбца. Оператор SQL GROUP BY используется для объединения результатов выборки по одному или нескольким столбцам.
В результате работы с этими предикатами мы получаем уникальные записи по какому либо ключу. Не могу понять в чем их различие.
---- Добалено -----
В моем понимании что GROUP BY - это группировка по какому либо признаку, а то есть например есть поле со значениями:
1 2 3 1 2 3
после GROUP BY они должны стать:
1 1 2 2 3 3
а на деле получаем:
1 2 3
В чем причина?


Ответ

DISTINCT - получить уникальные строки (отличающиеся друг от друга любым отображаемым полем). Работает чуть быстрее.
GROUP BY - сгруппировать по какому-либо признаку, при этом можно использовать агрегатные функции SUM, AVG, MAX и т.д.
Добавлено
Дано
1 2 3 1 2 3
С помощью ORDER BY получим сортировку
1 1 2 2 3 3
С помощью DISTINCT уникальные значения
1 2 3
А с помощью GROUP BY можно посчитать кол-во вхождений
SELECT value, COUNT(*) FROM table_test value COUNT(*) 1 2 2 2 3 2

Комментариев нет:

Отправить комментарий