Многомерная гистограмма - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть набор данных временных рядов с 4 столбцами: a, b, c и меткой времени.Я хочу создать ячейки для всех трех столбцов, чтобы получить таблицу вхождения.В следующем примере таблицы приведены примеры данных:

 a  |  b  |  c  | timestamp
0.2 | 1.2 | 0.1 | 2018-01-01 00:00:00
0.3 | 2.2 | 0.2 | 2018-01-01 00:00:01
0.4 | 3.2 | 0.3 | 2018-01-01 00:00:02
0.2 | 0.2 | 0.4 | 2018-01-01 00:00:03
0.6 | 1.3 | 0.5 | 2018-01-01 00:00:04
0.7 | 2.4 | 0.1 | 2018-01-01 00:00:05
1.2 | 0.5 | 0.2 | 2018-01-01 00:00:06
3.2 | 1.7 | 0.3 | 2018-01-01 00:00:07
2.2 | 2.5 | 0.4 | 2018-01-01 00:00:08
1.3 | 3.7 | 0.5 | 2018-01-01 00:00:09
1.4 | 0.8 | 0.6 | 2018-01-01 00:00:10
etc.

Теперь я хочу создать элементы сортировки следующим образом:

a >= 0. and a < 0.25 and b >= 0. and b < 0.25 and c >= 0. and c < 0.25
a >= 0. and a < 0.25 and b >= 0. and b < 0.25 and c >= 0.25 and c < 0.5
a >= 0. and a < 0.25 and b >= 0. and b < 0.25 and c >= 0.5 and c < 0.75
a >= 0. and a < 0.25 and b >= 0.25 and b < 0.5 and c >= 0. and c < 0.25
a >= 0. and a < 0.25 and b >= 0.25 and b < 0.5 and c >= 0.25 and c < 0.5
etc.

Таким образом, я получу таблицу вхождений с ячейками, примененными к каждому измерению.\

У меня есть следующий SQL, который хорошо работает для одного столбца:

select
  bucket,
  0.+(bucket-1)*0.25 as low_a,
  0.+bucket*0.25 as high_a,
  count(1) as cnt
from
(
  select
    width_bucket(a, 0., 4., 16) as bucket
  from
    table
 )
group by bucket order by bucket;

Как я могу применить сегменты к нескольким столбцам?

...