问题描述
我想使用带有 CASE 和 WHEN 的 Hive 编写查询。
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;