#sql
Читаем:
Оператор SQL DISTINCT используется для указания на то, что следует
работать только с уникальными значениями столбца.
Оператор SQL GROUP BY используется для объединения результатов
выборки по одному или нескольким столбцам.
В результате работы с этими предикатами мы получаем уникальные записи по какому либо
ключу. Не могу понять в чем их различие.
---- Добалено -----
В моем понимании что GROUP BY - это группировка по какому либо признаку, а то есть
например есть поле со значениями:
1
2
3
1
2
3
после GROUP BY они должны стать:
1
1
2
2
3
3
а на деле получаем:
1
2
3
В чем причина?
Ответы
Ответ 1
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Ответ 2
Разница в механике работы. Distinct - возвращает уникальные значения, GroupBy - группирует ВСЕ значения. В некоторых случаях результат будет одним и тем же. Правило использование простое - если можно использовать Distinct, используй его, если нет - то Gorup by.
Комментариев нет:
Отправить комментарий