gpt4 book ai didi

sql - 时间流 - 每个维度的透视数据

转载 作者:行者123 更新时间:2023-12-03 17:09:57 24 4
gpt4 key购买 nike

TimeStream 使用键:值方法存储数据。
是否有任何简单的方法可以根据维度对数据进行透视以获取例如名为度量名称的列中所有可用度量的最大值?
让我们举个例子,使用以下数据集:

| 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 |
我们想要构建一个通用请求,无需任何代码转换即可提供以下结果:
| instance_id   | cpu_utilization (max)     | memory_utilization (max)  |
|------------- |----------------------- |-------------------------- |
| A | 38.2 | 54.9 |
| B | 45.3 | 33.3 |
当然,我知道通过获得以下内容(见下表),用我最喜欢的语言编写的代码很少,很容易进行枢轴,但我想知道这是否可以在本地方式上实现。
| 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 |
谢谢

最佳答案

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

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

关于sql - 时间流 - 每个维度的透视数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65124048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com