Size: a a a

ClickHouse не тормозит

2021 March 02

DN

Demetra Nadya in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
select some_group_column, groupArray( (col1, col2, col3) )
...
group by some_group_column
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
ровно что я хотел. и что?
источник

DN

Demetra Nadya in ClickHouse не тормозит
выводятся одинаковые группы, мне нужно, чтобы например на группу (4, 0, 0, 0) вывело, что их 4, типа {(4,0,0,0):4}
источник

DN

Demetra Nadya in ClickHouse не тормозит
аналогично для (11,0,0,0) {(11,0,0,0):6} там их 6
источник

C

Claire in ClickHouse не тормозит
Доброе утро
Помогите, пожалуйста, с решением задачи
Есть цепочки основных событий (e1, e2) и доп параметры для каждого из них (p1, p2).
Я уже получила пары событий [(e1', 'e2)]. Теперь из хаоса доп параметров нужно достать доп параметры, которые к ней относились.
Как это можно сделать?

Важно, что из цепочек событий нужно было достать те пары событий, где e2 идёт сразу после e1.

То есть изначально цепочки событий и параметров могли выглядеть так:
e1,e1,e1,e2 | p1,p1,p1,p2
e2 | p2
e1,e1,e1 | p1,p1,p1
источник

C

Claire in ClickHouse не тормозит
Была похожая задача. Но я запнулась на tuple
источник

C

Claire in ClickHouse не тормозит
Переслано от Olga Zh
пары по номеру событий - понятно, получились. А доп параметры каждого из событий? собирать все доп параметры в tuple чтобы они были привязаны?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Demetra Nadya
выводятся одинаковые группы, мне нужно, чтобы например на группу (4, 0, 0, 0) вывело, что их 4, типа {(4,0,0,0):4}
select some_group_column, groupArray( (col1, col2, col3) ) y, count() , length(y)
...
group by some_group_column
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Claire
Доброе утро
Помогите, пожалуйста, с решением задачи
Есть цепочки основных событий (e1, e2) и доп параметры для каждого из них (p1, p2).
Я уже получила пары событий [(e1', 'e2)]. Теперь из хаоса доп параметров нужно достать доп параметры, которые к ней относились.
Как это можно сделать?

Важно, что из цепочек событий нужно было достать те пары событий, где e2 идёт сразу после e1.

То есть изначально цепочки событий и параметров могли выглядеть так:
e1,e1,e1,e2 | p1,p1,p1,p2
e2 | p2
e1,e1,e1 | p1,p1,p1
arrayZip ?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
select arrayZip(x,y) from (select [1,2,3] x, ['a', 'b', 'c'] y) ;
┌─arrayZip(x, y)────────────┐
│ [(1,'a'),(2,'b'),(3,'c')] │
└───────────────────────────┘
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
SELECT
   z.1,
   z.2
FROM
(
   SELECT arrayZip(x, y) AS z
   FROM
   (
       SELECT
           [1, 2, 3] AS x,
           ['a', 'b', 'c'] AS y
   )
)

┌─tupleElement(z, 1)─┬─tupleElement(z, 2)─┐
│ [1,2,3]            │ ['a','b','c']      │
└────────────────────┴────────────────────┘
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
SELECT arrayMap((i, j) -> (i, j), x, y)
FROM
(
   SELECT
       [1, 2, 3] AS x,
       ['a', 'b', 'c'] AS y
)

┌─arrayMap(lambda(tuple(i, j), tuple(i, j)), x, y)─┐
│ [(1,'a'),(2,'b'),(3,'c')]                        │
└──────────────────────────────────────────────────┘
источник

C

Claire in ClickHouse не тормозит
Но если использовать только arrayZip, то он свяжет все пары параметров между собой. А нужно достать только те пары параметров, для которых действовал бы фильтр для событий (где e2 идёт сразу после e1)
источник

C

Claire in ClickHouse не тормозит
Для этих цепочек
e1,e1,e1,e2 | p1,p1,p1,p2
e2 | p2
e1,e1,e1 | p1,p1,p1

Нужно вывести параметры p1,p2 только для первой, так как только для нее выполняется условие по событиям e2 после e1. В остальных случаях можно вывести пустые массивы
источник

DN

Demetra Nadya in ClickHouse не тормозит
источник

DN

Demetra Nadya in ClickHouse не тормозит
здесь подсчитывает все группы,
источник

DN

Demetra Nadya in ClickHouse не тормозит
нужно количество для каждой группы
источник

DN

Demetra Nadya in ClickHouse не тормозит
где 11 - количество 3 должно быть,, где 4 - количество 2, осьтальные по 1
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Claire
Для этих цепочек
e1,e1,e1,e2 | p1,p1,p1,p2
e2 | p2
e1,e1,e1 | p1,p1,p1

Нужно вывести параметры p1,p2 только для первой, так как только для нее выполняется условие по событиям e2 после e1. В остальных случаях можно вывести пустые массивы
SELECT arrayFilter( i,j -> i.1='e1' and j.1='e2', arrayPopBack(arrayPushFront(w, ('-', '-'))), (arrayZip(x,y) as w)) z
FROM
  (SELECT ['e1','e1','e1','e2'] x, ['p1','p1','p1','p2'] y)
┌─z─────────────┐
│ [('e1','p1')] │
└───────────────┘
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Demetra Nadya
где 11 - количество 3 должно быть,, где 4 - количество 2, осьтальные по 1
не уловил никакой логики. Можете на другом языке объяснить?
источник