pivot-table - Pivot 或 clickhouse 中的同等功能

标签 pivot-table clickhouse

我是 clickhouse 或任何柱状数据库的新手。我需要像在 sql-server、postgres 或任何其他基于行的数据库中那样对表进行透视。

我正在寻找一个通用的解决方案,但是这里示例的解决方案会很好。

表:存储

Tag  Slot  Reading  
---  ---- --------      
A     1     5 
B     1     6  
C     1     1  
A     2     2       
B     2     8
C     3     2
.
.
millions of rows

转置为:

Slot  A   B   C   and so on  
---   --  --  --       
1     5   6   1
2     2   8   -  
3     -   -   2  
.
. 
and so on

标签可以是 100 到 1000 之间的任意位置,插槽可以是 1000-10000 之间。不过没关系。

我只需要使用 sql 来完成此操作。

谢谢。

最佳答案

create table xxx (Tag String, Slot Int64, Reading Int64) Engine=Memory;
insert into xxx values 
('A',1,5),
('B',1,6), 
('C',1,1),  
('A',2,2),  
('B',2,8),
('C',3,2)

SELECT
    Slot,
    groupArray((Tag, Reading))
FROM xxx
GROUP BY Slot

┌─Slot─┬─groupArray(tuple(Tag, Reading))─┐
│    3 │ [('C',2)]                       │
│    2 │ [('A',2),('B',8)]               │
│    1 │ [('A',5),('B',6),('C',1)]       │
└──────┴─────────────────────────────────┘

关于pivot-table - Pivot 或 clickhouse 中的同等功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61781720/

相关文章:

php - Clickhouse 连接被拒绝

database - 有人可以解释 arrayJoin() 函数在 Clickhouse 数据库中如何工作吗?

python - Pandas 按值过滤数据透视表

mysql - 动态数据透视表列 mysql

sql - Clickhouse 子查询使用主查询中的属性

clickhouse - 如何让 ClickHouse count() 函数在零匹配的情况下返回 0?

vba - 同步数据透视表 - VBA 代码不起作用

php - Laravel 5.1 - 三个表之间的数据透视表,更好的选择?

postgresql - postgres tablefunc crosstab() 函数中的类别可以是整数吗?

sql - Clickhouse:减少元组数组以计算平均 session 时间