184 похожих чатов

Всем привет! Довольно простой вопрос, но не нашел в документации

явного ответа. При выполнении distinct остается только первая найденная строка ? или может любая быть выбрана?
(перед этим делаю order by в подзапросе чтобы зафиксировать порядок)

8 ответов

15 просмотров

IMHO делаете или нет order by разницы нет упрощенно DISTINCT через hash map в итоге делается просто прогоняется рекордсет и строка скипается если ее хеш присутствует в массиве существующих ключей

Sergey-Lomdjaria Автор вопроса
Slach [altinity]
IMHO делаете или нет order by разницы нет упрощенн...

Вопрос в каком он порядке добавляет их в этот мап, если в порядке как они есть по одной, и скипает если нашел то тогда всегда первый будет. Если нет, и он как-то параллельно это делает, то тогда нельзя завязываться на то, какой был порядок

Sergey Lomdjaria
Вопрос в каком он порядке добавляет их в этот мап,...

SELECT DISTINCT подразумевает что у вас только полностью уникальные записи выбираются (а не по части полей) но чтобы проверить что "запись еще не встречалась" надо весь рекордсет перебрать так что нет разницы "первая" или "последняя" запись для SELECT DISTRINCT

Sergey-Lomdjaria Автор вопроса
Slach [altinity]
SELECT DISTINCT подразумевает что у вас только пол...

Понял, большое спасибо. Я думал что он делает дистинкт только по первому полю считаются) Придется исправить на groupby

Sergey Lomdjaria
Понял, большое спасибо. Я думал что он делает дист...

нет distinct считается по всем полям а вот все поля которые в GROUP BY приходят должны прогоняться через аггрегатные функции одна из них any(fieldname) https://clickhouse.tech/docs/en/sql-reference/aggregate-functions/reference/any/ и там как раз написано Selects the first encountered value.

Sergey-Lomdjaria Автор вопроса
Slach [altinity]
нет distinct считается по всем полям а вот все по...

Я же правильно понимаю, что здесь надо сначала сделать сортировку в подзапросе, а уже после GroupBy и тогда any() даст нам точно первую строку?

Sergey-Lomdjaria Автор вопроса
Slach [altinity]
нет, ORDER BY делается после GROUP BY

Да, я так и понял, просто выразился неверно, ещё раз спасибо

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта