@clickhouse_ru

Страница 278 из 723
Bulat
06.10.2017
12:09:47
concat не подходит, это не аггрегирующая функция

arrayStringConcat, вдруг подойдет
а это ,кажется, то что нужно! спасибо большое) В документации этого нет)

думаю, что можно будет как-то сделать нужное через groupUniqArray

Google
Andrey
06.10.2017
12:10:59
а это ,кажется, то что нужно! спасибо большое) В документации этого нет)
есть)) https://clickhouse.yandex/docs/ru/single/index.html#arraystringconcat-arr-separator

Bulat
06.10.2017
12:11:42
видимо, не так давно добавили) пару месяцев назад прошерстил всё в поисках)

Konstantin
06.10.2017
12:14:50
concat не подходит, это не аггрегирующая функция
а что мешает сделать по ней group by?

Bulat
06.10.2017
12:16:49
хочется сделать что-то типа select user, concat(activity) from my_table group by user

а это не работает

Konstantin
06.10.2017
12:22:14
а это не работает
посмотрел как это в мускуле, попробуйте groupArray(x) https://clickhouse.yandex/docs/ru/single/index.html#grouparray-x

Bulat
06.10.2017
12:25:02
Да, спасибо, примерно так и сделаем. Проблема была в функции, которая склеивает строки в массиве. Не мог её найти, приходилось лепить кодом

Иван
06.10.2017
12:30:45
Гайз, как сделать groupUniqArray от поля типа Nullable(String)? Ловлю Exception "Nested type Array(String) cannot be inside Nullable type" Или как из Nullable (String) сделать обычный String?

Anton
06.10.2017
13:20:39
Ой, простите.

Dima
06.10.2017
13:20:55
Привет Подскажите, пожалуйста. Есть способ обойти ограничение функции substring и передать в нее не константы, а функцию от этой же строки. Например: substring(s, position(s,'example'), position(s,'example')+10)

Bulat
06.10.2017
13:23:15
а подзапросом не получается?

Dima
06.10.2017
13:23:44
Не, ни подзапрос, ни джойн не получается

Google
papa
06.10.2017
13:39:34
SELECT substring('abc', position('abc', 'b'), length('b')) AS x ┌─x─┐ │ b │ └───┘

Aliaksandr
06.10.2017
13:42:23
SELECT extract('abc', 'b') AS x ┌─x─┐ │ b │ └───┘

Konstantin
06.10.2017
14:04:55
а есть какие-то органичения по типам данных для словарей? ругается : Unknown type Array(String)

@kochetovnicolai может быть вы подскажете?)

Nikolai
06.10.2017
14:10:35
да, ограничения есть. Можно только числа и строки.

Konstantin
06.10.2017
14:10:59
понятно, спасибо большое

Иван
06.10.2017
14:13:37
пожалуй только заменить NULL на ''
Но тип от этого не изменится

Konstantin
06.10.2017
14:14:27
Но тип от этого не изменится
я имел в виду избавится от столбца Nullable(String) заменив или сделав дублирующий String

Иван
06.10.2017
14:17:25
А, понял) Видимо, какой-нибудь функции, которая позволяет это на лету делать, не существует, да? Вроде приведения типов

Nikolai
06.10.2017
14:19:09
есть функция assumeNotNull

Konstantin
06.10.2017
14:19:55
есть функция assumeNotNull
а есть описание?

Nikolai
06.10.2017
14:21:22
описания нет :) она принимает 1 агрумент и снимает Nullable

SELECT x, toTypeName(x), assumeNotNull(x), toTypeName(assumeNotNull(x)) FROM ( SELECT arrayJoin(['a', NULL, 'abd']) AS x ) ┌─x───┬─toTypeName(x)────┬─assumeNotNull(x)─┬─toTypeName(assumeNotNull(x))─┐ │ a │ Nullable(String) │ a │ String │ │ \N │ Nullable(String) │ │ String │ │ abd │ Nullable(String) │ abd │ String │ └─────┴──────────────────┴──────────────────┴──────────────────────────────┘

Konstantin
06.10.2017
14:24:45
тогда это действительно выход)

Nikolai
06.10.2017
14:24:55
правда, если не ошибаюсь, нет гарантий, что Null после этого станет чем-то осмысленным

Иван
06.10.2017
14:26:26
Да, спасибо большое!

Nikolai
06.10.2017
14:27:24
все-таки стоит добысить проверку на Null. Не факт, что всегда будет пустая строка.

Konstantin
06.10.2017
14:27:25
Николай, много у вас в загашнике неописанных функций?)

Nikolai
06.10.2017
14:30:03
есть несколько. вот еще ifNull(x, y) полезная. Возвращает x, если не Null, иначе y.

Google
Nikolai
06.10.2017
14:30:28
SELECT ifNull(x, '42'), toTypeName(ifNull(x, '42')) FROM ( SELECT arrayJoin(['a', NULL, 'abd']) AS x ) ┌─ifNull(x, \'42\')─┬─toTypeName(ifNull(x, \'42\'))─┐ │ a │ String │ │ 42 │ String │ │ abd │ String │ └───────────────────┴───────────────────────────────┘

Konstantin
06.10.2017
14:31:27
классно, спасибо =)

Anton
06.10.2017
14:51:21
добрый вечер, подскажите можно ли в arrayMap делать подзапрос используя аргумент, т.е. есть запрос: SELECT date, arrayMap(g -> ( SELECT groupArray(date) FROM table WHERE g_id = 'g2' GROUP BY g_id ), gs) FROM ( SELECT date, groupUniqArray(g_id) AS gs FROM table GROUP BY date ) если заменить WHERE g_id = 'g2' на g, то не работает

No name
06.10.2017
15:32:11
подскажите, как долго идет преобразование типа столбца? выполнил команду ALTER TABLE db.table MODIFY COLUMN SomeId Nullable(UInt32) До этого был тип UInt32 уже минут 15 стоит, это нормально?

можно ли как-то это остановить?

а всё, преобразовалось, вопрос закрыт

Cargeh
06.10.2017
16:11:54
У кого какие впечатления от использоватся Nested? Стоит игра свеч? Если несколько столбцов, которые можно логически объединить, но по ним будет поиск - не навредит ли?

papa
06.10.2017
16:22:56
а сейчас по ним уже есть поиск?

Stas
06.10.2017
16:27:32
Нашел интересный багофичу - если несколько колонок в SELECT обладают одинаковым названием, то при отправки запроса через нативного клиента/http - запрос выполнится, а вот если попробовать создать вьюшку - ошибка =)

Александр
06.10.2017
19:48:44
У кого какие впечатления от использоватся Nested? Стоит игра свеч? Если несколько столбцов, которые можно логически объединить, но по ним будет поиск - не навредит ли?
Я использую несколько nested колонок в одной таблице, внутри nested колонки от трех до 8 колонок. Если надо что-то посчитать, то через arrayJoin раскладываю и считаю что потребуется.

Tima
07.10.2017
15:48:11
Добрый вечер, может кто нибудь подсказать?
Уточните структуру таблицы и выдаваемую ошибку

Anton
07.10.2017
15:59:07
Таблица table: date Date, g_id String

Unknown identifier: g

papa
07.10.2017
16:18:46
Добрый вечер, может кто нибудь подсказать?
коррелированные подзапросы не поддерживаются

sha-bang
08.10.2017
18:18:11
Привет! Использую внешние словари и почему-то ругается last_exception: Code: 36, e.displayText() = DB::Exception: Dictionary has no attributes defined, e.what() = DB::Exception хотя все указал как в доке <structure> <!-- <id> <name>api_key_id</name> </id> --> <key> <attribute> <name>key</name> <type>String</type> <null_value /> </attribute> <attribute> <name>descr</name> <type>String</type> <null_value /> </attribute> </key> Никто не знает что ему нужно?

papa
08.10.2017
18:20:01
а снаружи ключа атрибуты есть, которые будете по ключу доставать?

sha-bang
08.10.2017
18:21:44
нет, сейчас попробую добавить

@orantius Премного Вам благодарнен!!! Я просто не до конца разобрался во всем этом, поэтому так туплю!!! Все работает!!!

Constantine
09.10.2017
08:45:04
гайз, вопрос есть )

Google
Constantine
09.10.2017
08:45:11
есть count() запрос

в ответ приходит \N

почему так? О_О

Andrey
09.10.2017
08:46:10
а поподробнее про запрос

Constantine
09.10.2017
08:46:59
а там ничего сверхестественного

один большой запрос с несколькими count()

и проблемный count() выглядит вот так



отдельно его выполняю, вижу 0 rows in set

Mariya
09.10.2017
08:48:44
Да, ClickHouse не возращает count() = 0, а возвращает пустоту.

Constantine
09.10.2017
08:49:02
воу

?

а как сделать 0?

Andrey
09.10.2017
09:06:36
а как сделать 0?
SELECT coalesce(NULL, 0) ┌─coalesce(NULL, 0)─┐ │ 0 │ └───────────┘

Constantine
09.10.2017
09:06:57
спс, сейчас попробую

работает, спасибо!

Иван
09.10.2017
09:53:51
Всем доброго времени суток) Нужно сравнить массивы, которые получаются после groupUniqArray. Но в них может быть разный порядок: [1,2,3] и [2,1,3], например, и такие массивы должны считаться одинаковыми. Как это лучше сделать? Есть какая-нибудь функция сортировки массива?)

Anton
09.10.2017
09:55:09
может так? arraySort(groupUniqArray())

Иван
09.10.2017
10:06:54
Спасибо) Ох уж эти незадокументированные полезные функции

yuyu
09.10.2017
10:47:18
Вопрос не совсем по кликхаус, а, скорее, по clickhouse datasource в графане: в select так работает: sum(bytes)*8/$interval as input_dayshift_$timeshift а так - нет: sum(bytes)*8/$interval as input_'$timeshift'_$dayshift Здесь $dayshift - template переменная графаны. Можно это как-то побороть?

Google
Roman
09.10.2017
11:32:29
" sum(bytes)*8/$interval as input_'$timeshift'_$dayshift" не совсем понимаю, что должно получится

yuyu
09.10.2017
11:36:10
Хотелось бы чтобы после подстановки переменной графаной было что-то вроде: sum(bytes)*8/$interval as input_7_dayshift

Если писать просто sum(bytes)*8/$interval as input_$timeshift_dayshif, графана ищет переменную $timeshift_dayshift, а такую я не определял. Кавычки пробовал, чтобы выделить переменную - не помогает.

Aliaksandr
09.10.2017
11:45:56
попробуйте взять название переменной в двойные квадратные скобки: http://docs.grafana.org/reference/templating/#interpolation

Why two ways? The first syntax is easier to read and write but does not allow you to use a variable in the middle of word. Use the second syntax in expressions like my.server[[serverNumber]].count

yuyu
09.10.2017
11:58:47
Супер, так сработало! Спс. Совсем забыл про такой вариант ?

Владимир
09.10.2017
12:17:03
Альтер на реплицируемых таблицах надо отдельно запускать на каждой ноде, или оно как-то автоматом сработает?

Maxim
09.10.2017
12:33:39
Все привет. В чем может быть проблеме: Работаю по нативному протоколу, накапливаю сообщения до 1к потом отправляю, и отправка записает на секунды 3-4 хотя объяем не большой 5-6 кб за запись Накапливает очень быстро

Constantine
09.10.2017
13:18:57
коллеги, есть какой-то способ заставить работать with как классический with?

papa
09.10.2017
13:19:21
cte?

Constantine
09.10.2017
13:19:25
а то селект в конструкции with отдаёт как цельную строку

угу

papa
09.10.2017
13:19:58
пока нет

Constantine
09.10.2017
13:20:43
боль

Страница 278 из 723