ClickHouse 使用group by with cube将数字列的空值转换为字符
最近开始使用ClickHouse,发现部分语法和Hive有所出入。当使用Hive语法时,为了避免出现业务方对分析维度的经常性变动,保证代码的易于维护性,经常会在Hive中使用grouping sets。然而到了ClickHouse,发现竟然不支持grouping sets,不免有些忧伤,只能退而求其次,使用group by with cube。然而在使用时,不免出现了一些问题。
当我们使用Hive进行grouping sets或者group by with cube在数字列产生空值并且需要把空值转换为字符时,往往将空值通过nvl语法转换即可,然而到了ClickHouse却有些不同之处。
以如下数据为例,
product_id | city_id | order_id |
---|---|---|
1 | 40 | 10000 |
1 | 40 | 10001 |
1 | 41 | 10002 |
2 | 40 | 10003 |
2 | 40 | 10004 |
2 | 41 | 10005 |
2 | 41 | 10006 |
如需要按照PRODUCT_ID,CITY_ID,PRODUCT_ID&CITY_ID进行聚合时,代码如下