sql - Hive 拆分和总计
问题描述
所以,假设我想计算 2 列中“Class1”条目的数量……列中的每个输入都是一个字符串。
说我有输入数据:
column_1 column_2
Class1;full;11;11 Class1;full;11;11
Class2;limited;11;11 Class1;full;11;11
期望的输出:
Class Total
Class1 3
Class2 1
实际输出:
Class Total
Class1 2
但是,看起来拆分功能仅评估最后一列。
以下是我的查询...
SELECT Class,COUNT(*) AS Total
FROM (SELECT ID
,SPLIT(CLASS_LIST1,'\u0059')[0]
,SPLIT(CLASS_LIST2,'\u0059')[0]
AS Class
FROM table
)a
group by class
关于如何获得两列总数的任何想法?
解决方案
使用UNION ALL
:
SELECT Class,COUNT(*) AS Total
FROM (SELECT ID, SPLIT(CLASS_LIST1,'\073')[0] AS Class FROM table
UNION ALL
SELECT ID, SPLIT(CLASS_LIST2,'\073')[0] AS Class FROM table
)a
group by class
推荐阅读
- database - 如何使用进程内迁移运行程序和内存 SQLite 数据库测试流畅的迁移
- android - 来自 gitlab 本地服务器私有存储库的 Android 库 maven 依赖项
- python - 文本到语音 Raspberry pi 错误 - gtts.tts.gTTSError:令牌计算期间的连接错误
- javascript - jQuery:获取活动链接索引总是返回 0
- java - 如何从 pom.xml 中提取所有依赖项?
- f# - 将接收到的串行数据事件处理程序添加到 f# 串行端口阅读器
- c# - 如何为使用 Application.Current.Dispatcher.Invoke 的方法编写 WPF 异步单元测试?
- javascript - React中过滤列表为空时如何显示消息
- javascript - XSTLProcessor 绕过和标记
- php - 无限循环的长轮询使网站变慢(本地主机)