sql - Hive 查询 CASE WHEN 状态
问题描述
我想使用 Hive 和 CASE 和 WHEN 编写查询。
SELECT CASE WHEN home_score > away_score THEN away_team
WHEN home_score < away_score THEN home_team
END AS year_group,
COUNT(1) AS count
FROM matches
GROUP BY year_group
ORDER BY count desc
limit 5;
但这在蜂巢中不起作用。请帮我解决这个问题。
解决方案
将 CASE 添加到 GROUP BY:
SELECT CASE WHEN home_score > away_score THEN away_team
WHEN home_score < away_score THEN home_team
END AS year_group,
COUNT(1) AS cnt
FROM matches
GROUP BY CASE WHEN home_score > away_score THEN away_team
WHEN home_score < away_score THEN home_team
END
ORDER BY cnt desc
limit 5;
推荐阅读
- scala - Spark - 选择总和和连接数据集的所有列
- arrays - AJAX 发送 JSON 数组未绑定在控制器中
- corda - 在 Corda 网络地图中 - 如何以及在哪里调用端点?
- airflow - 在 Airflow 中使用 cron 计划时如何考虑夏令时
- xslt - xslt 1.0 节点集不循环
- php - 如何定位while循环的N次第一次迭代?
- javascript - 如何不在 3D.js 条形图中显示最后一条网格线?
- javascript - 从现有对象数组创建新对象数组时出现引用错误?
- python - Python3.6 - 无法导入名称“_imaging”[Django 2.1.2、Apache 2、CentOS 7]
- azure - 如何获取我的脚本访问 Azure 存储过程所需的令牌?