mysql - SQL 使用列值作为查询计数结果中的列名
问题描述
我有一个表,其中包括tdate
和node_name
列等。
tdate node_name
2021-04-15 15:37:04.000 node1
2021-04-15 15:37:04.000 node2
2021-04-15 15:37:04.000 node1
2021-04-15 15:37:04.000 node3
2021-04-15 15:37:04.000 node1
我想绘制node_name
group的实例计数tdate
。所以做这样的事情
SELECT
date_trunc('minute',tdate),
node_name,
count(1)
GROUP BY 1,2
我明白了
_col0 node_name _col2
2021-04-15 15:37:00.000 node1 3
2021-04-15 15:37:00.000 node2 1
2021-04-15 15:37:00.000 node3 1
我想看到的是
_col0 node1 node2 node3
2021-04-15 15:37:00.000 3 1 1
我知道我会导致使用sum(node_name = 'node1') as 'node1'
等,但问题是可能存在数百个唯一节点名称,具体取决于查询及其不可行的使用sum()
或count(case )
语句。是否有某种方法可以在不明确包含每个 node_name 值的情况下对其进行概括?( sum(node_name) as node_name
)?
解决方案
您可以使用histogram
将返回具有相应计数的列映射的函数,请参阅此处的文档:https ://prestodb.io/docs/current/functions/aggregate.html
推荐阅读
- itext7 - 如何允许第二个签名者在第一个签名者签名后放置水印?
- python - Pandas - 如何提取每行中包含的标题?
- xcode - zsh:找不到命令:pod - MACOS Catalina 10.15
- java - 如何修复这种泛型类型?
- android - DropDownPreference setOnPreferenceChangeListener 在初始化时调用自身
- swift - 点击按钮从谷歌地图中删除 GMSCircle
- sonarqube - Oracle Jet 项目中的 SonarQube 配置
- ios - azure devops 中的移动应用程序构建和发布管道工作流
- arrays - Mongodb - 在深度嵌套的数组中查找
- kubernetes - 在 devops 管道中从 Prowershell 访问 Azure Cli