
Konstantin
06.10.2017
12:08:59

Bulat
06.10.2017
12:09:47
concat не подходит, это не аггрегирующая функция
думаю, что можно будет как-то сделать нужное через groupUniqArray

Google

Andrey
06.10.2017
12:10:59

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

Konstantin
06.10.2017
12:14:50

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?

Konstantin
06.10.2017
12:57:57

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

Konstantin
06.10.2017
14:14:27

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

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

Konstantin
06.10.2017
14:19:55

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 после этого станет чем-то осмысленным

Konstantin
06.10.2017
14:25:16

Иван
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

Anton
07.10.2017
15:39:23

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
боль