|
|
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, что лучше использовать DISTINCT или group by чтобы убрать дубликаты? С каким вариантом время выполнения запроса будет наименьшие ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 15:12 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
elimpion, А как ты узнаешь, что тебе ответили правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 15:18 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
elimpion, в поиске забанили ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 15:18 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
123йй, хотел бы найти в поиске, не писал бы тут! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 15:20 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
elimpion, т.е ты даже в поиске не умеешь писать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 15:25 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
123йй, я задал конкретный вопрос, а вы тут мусорку разводите, не хорошо так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 15:54 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
elimpion, как выглядит запрос? ps аналитика по разному отаботает для group by и distinct ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 16:09 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
elimpionя задал конкретный вопрос, а вы тут мусорку разводите, не хорошо так К сожалению, этот конкретный вопрос относится к тем вопросам, на который невозможно дать простой, очевидный и правильный ответ. Во-первых, потому что вопросов сразу два и очень разных. Во-вторых, каждый из этих вопросов требует достаточно пространных пояснений по конкретным ситуациям. Поэтому изложу лишь свои предпочтения: 1. По возможности развивать схему данных и писать запросы следует так, чтобы "дубликаты" просто не образовывались. 2. Если по каким-либо причинам выполнение п.1 невозможно/нежелательно, то предпочитаю использовать group by как более сопровождаемое и в меньшей степени склонное к сокрытию ошибок решение. 3. Если вижу в запросе, требующем внимания, "select distinct", то первое что пытаюсь сделать - выяснить, для какой такой надобности оно появилось и не надо ли раздать кому по шапке уже просто потому, что данный инструмент слишком часто применяется не от большого ума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 16:33 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
andrey_anonymouselimpionя задал конкретный вопрос, а вы тут мусорку разводите, не хорошо так 3. Если вижу в запросе, требующем внимания, "select distinct", то первое что пытаюсь сделать - выяснить, для какой такой надобности оно появилось и не надо ли раздать кому по шапке уже просто потому, что данный инструмент слишком часто применяется не от большого ума. И то и другие документированно и обязано работать. GROUP BY предполагает что будет делаться агрегация. А distinct нужен чисто для отброса дубликатов. Вопрос что быстрее - без разницы наверное. Надо ориентироваться на требования со стороны заказчика по перфомансу приложения. Если интересно - можно просто провести тесты и измерить. Если приложение не делает это 1000 раз за секунду (а раз в час ) - то наверное все равно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 17:14 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
veepА distinct нужен чисто для отброса дубликатов.Чудак, ты не понял. Не надо генерить дубли, чтобы потом с ними бороться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 17:40 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
veepЕсли интересно - можно просто провести тесты и измерить.Провести корректный тест задача, требующая определенных знаний. Результат distinct и group by идентичен только при определенных ограничениях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 18:03 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
-2-elimpion, А как ты узнаешь, что тебе ответили правильно? тут, скорее, проблема в том, что правильных неполных ответов может быть много andrey_anonymousК сожалению, этот конкретный вопрос относится к тем вопросам, на который невозможно дать простой, очевидный и правильный ответ.да лааааадно, можно просто всем лень пересказывать как работает оптимизатор (куча всяких трансформаций: в semi-join, всякие distinct/group-by placement, distinct/group-by elimination, distinct push-down, distinct agg transformation, distinct view unnesting, hash unique, hash group by, sort unique, sort group by).... andrey_anonymousпредпочитаю использовать group by как более сопровождаемое и в меньшей степени склонное к сокрытию ошибок решение.имхо зависит от уровня разработчиков: если слабо понимают логику, то действительно group by заставит немного задуматься о том, что именно хотят получить, но, в целом, это крайне странный аргумент делать group by там где нужен distinct. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 18:26 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
Можно для надежности писать и distinct и group by. И чтоб точно не было повторов, из этого датасета сделать селект тоже с дистинктом. Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 18:42 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
xtenderandrey_anonymousневозможно дать простой, очевидный и правильный ответ.да лааааадно, можно просто всем лень пересказывать как работает оптимизатор (куча всяких трансформаций :) xtenderandrey_anonymousпредпочитаю использовать group by как более сопровождаемое и в меньшей степени склонное к сокрытию ошибок решение.но, в целом, это крайне странный аргумент делать group by там где нужен distinct. По мне так нормальный аргумент, если делаешь нечто, подлежащее сопровождению , а не "просто убираешь дубли". А где, кстати, полагаешь, distinct реально нужным ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 18:42 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
xtendergroup by заставит немного задуматьсяЭто если долистают до него. А так в списке выборки поменяют trunc(...'dd') на 'mm'. Пользователь потом на реальных данных будет гадать, какую из показанных 30 одинаковых дат выбрать в качестве параметра отчета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 19:55 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousxtenderпропущено... да лааааадно, можно просто всем лень пересказывать как работает оптимизатор (куча всяких трансформаций :) xtenderпропущено... но, в целом, это крайне странный аргумент делать group by там где нужен distinct. По мне так нормальный аргумент, если делаешь нечто, подлежащее сопровождению , а не "просто убираешь дубли". А где, кстати, полагаешь, distinct реально нужным ? Там, где это приводит к оптимальному плану =) Т.е. если что-то работает на distinct, переписывание на group by может потребовать дополнительных затрат, как и в обратном случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 20:18 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
ElicveepА distinct нужен чисто для отброса дубликатов.Чудак, ты не понял. Не надо генерить дубли, чтобы потом с ними бороться. Дублей в таблицах нет при любом дизайне (что прямом, что кривом).Каждая строчка это уникальное событие (факт, значение), Distinct пользуются тогда когда надо сделать уникальным вывод некого представления. Например таблица логов, посмотреть типы событий за последний час. Если мне не нужно что то агрегировать не вижу причины не использовать distinct. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 23:39 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
veepДублей в таблицах нет при любом дизайне (что прямом, что кривом).Каждая строчка это уникальное событие (факт, значение)Корявый ум недоразработчиков может легко любой скаляр разможить -ннадцать на -ннадцать раз корявым соединением. Именно это подозревается при наличии немотивированного unique. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2019, 08:14 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
все мы пользуемся дистинктами намного чаще, чем иногда кажется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2019, 09:32 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
andreymxвсе мы пользуемся дистинктами намного чаще, чем иногда кажетсяТы уверен, что так уж и все так уж часто и именно так пользуются попселем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2019, 11:07 |
|
||
|
DISTINCT/group by
|
|||
|---|---|---|---|
|
#18+
rf_mail ответ из-за океана Утверждая "they are for all intents and purposes the same ", Том не прав. Group by при лингвистическом сравнении обрезает строки по nls_sort и можно получить некорректный результат, где distinct отработает верно. С лингвистикой distinct переходит с hash на sort и работает медленнее (в 8i hash gby/unique еще не было). Поведение зависит от версий, патчей и параметров БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2019, 11:59 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39759224&tid=1882940]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 263ms |
| total: | 405ms |

| 0 / 0 |
