首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Timestream -每个维度的透视数据

Timestream -每个维度的透视数据
EN

Stack Overflow用户
提问于 2020-12-03 18:22:27
回答 1查看 257关注 0票数 6

TimeStream使用key:value方法存储数据。

有没有什么简单的方法可以根据维度来透视数据,例如,在一个名为度量名称的列中,获得所有可用度量的最大值?

让我们以下面的数据集为例:

代码语言:javascript
复制
| time                              | instance_id   | measure_name          | measure_value::double     | measure_value::bigint     |
|-------------------------------    |-------------  |--------------------   |-----------------------    |-----------------------    |
| 2019-12-04 19:00:00.000000000     | A             | cpu_utilization       | 35                        | null                      |
| 2019-12-04 19:00:01.000000000     | A             | cpu_utilization       | 38.2                      | null                      |
| 2019-12-04 19:00:02.000000000     | B             | cpu_utilization       | 45.3                      | null                      |
| 2019-12-04 19:00:00.000000000     | A             | memory_utilization    | 54.9                      | null                      |
| 2019-12-04 19:00:01.000000000     | A             | memory_utilization    | 42.6                      | null                      |
| 2019-12-04 19:00:02.000000000     | B             | memory_utilization    | 33.3                      | null                      |

我们想要构造一个泛型请求,它将提供以下结果,而不需要任何代码转换:

代码语言:javascript
复制
| instance_id   | cpu_utilization (max)     | memory_utilization (max)  |
|-------------  |-----------------------    |-------------------------- |
| A             | 38.2                      | 54.9                      |
| B             | 45.3                      | 33.3                      |

当然,我知道通过获得以下代码(见下表),用我最喜欢的语言编写的代码很少,很容易实现pivot,但我想知道这在本机方式上是否可能实现。

代码语言:javascript
复制
| instance_id   | measure_name          | max(measure_value)    |
|-------------  |--------------------   |--------------------   |
| A             | cpu_utilization       | 38.2                  |
| B             | cpu_utilization       | 45.3                  |
| A             | memory_utilization    | 54.9                  |
| B             | memory_utilization    | 33.3                  |

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-12-03 18:32:13

做一个GROUP BY。使用case表达式进行条件聚合

代码语言:javascript
复制
select instance_id, 
       max(case when measure_name = 'cpu_utilization' then measure_value end),
       max(case when measure_name = 'memory_utilization' then measure_value end)
from tablename
group by instance_id
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65124048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档