hivesql练习_排列问题

发布时间 2023-03-28 22:32:03作者: 娜娜娜娜小姐姐

现有球队表(team)如下。

team_name
(球队名称)
湖人
骑士
灰熊
勇士

拿到所有球队比赛的组合 每个队只比一次

期望结果如下:

team_name_1
<string>
(队名)
team_name_2
<string>
(队名)
勇士 湖人
湖人 骑士
灰熊 骑士
勇士 骑士
湖人 灰熊
勇士 灰熊

 

解答:

with tt as(
  SELECT
  team_name,
  case 
  when team_name = '湖人' then 1
  when team_name = '骑士' then 2
  when team_name = '灰熊' then 3
  else 4
  end no --编号
  FROM
  team
)
select t1.team_name team_name_1, t2.team_name team_name_2
from tt t1
join tt t2
on t1.no < t2.no