Hive SQL必刷练习题:排列组合问题【通过join不等式】

排列组合问题【通过join不等式】

在这里插入图片描述

这种问题,就是数学的排列不等式,一个队伍只能和其余队伍比一次,不能重复

方法1:可以直接通过join,最后on是一个不等式【排列组合问题的解决方式】

方法2:也可以是提前多加一列,加上一个序号

方法1

select
t1.team_name team_name_2,
t2.team_name team_name_1
from
(
    select
        team_name,
        case
        when team_name='湖人' then 2
        when team_name='骑士' then 4
        when team_name='勇士' then 1
        else 3 end flag
    from team
) t1
join
(
    select
        team_name,
        case
        when team_name='湖人' then 2
        when team_name='骑士' then 4
        when team_name='勇士' then 1
        else 3 end flag
    from team
) t2 
on t1.flag > t2.flag

方法2

select 
	team_name team_name_1,
	team_name_2
from
team
join( 
    select team_name team_name_2
    from team
)t1
on team_name < team_name_2

另外的思路:

​ 也还有种思路,我就是想这样,不过没成功,就是通过炸裂函数+开窗

– 思路:

– 通过理解题意 明白了每个队伍只比一次其实就是一个数学的关联问题

– 所以就想到了使用开窗函数和高级聚合函数和炸裂函数

– 先通过高级聚合函数 开窗 将当前行的值到最后一行的队伍名封装到一个集合中

– 然后将集合再炸裂开 并将两个队伍名字相同的行过滤掉即可得出想要的结果

SELECT 
t2.team_name team_name_1,
t2.team_name2 team_name_2 
FROM ( 
  SELECT 
  	t1.team_name, 
  	team_name2 
  FROM 
  ( SELECT 
        team_name, 
        collect_list(team_name) OVER (ORDER BY team_name ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) name_list 
FROM team 
) t1 
  LATERAL VIEW explode(t1.name_list) temp AS team_name2 
) t2 
WHERE t2.team_name != t2.team_name2

相关推荐

  1. 算法编程:排列组合问题

    2024-03-24 06:04:05       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-24 06:04:05       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-24 06:04:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-24 06:04:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-24 06:04:05       20 阅读

热门阅读

  1. hive学习记录

    2024-03-24 06:04:05       18 阅读
  2. spring boot dynamic 动态数据数据源配置连接池

    2024-03-24 06:04:05       18 阅读
  3. 数据库处理函数

    2024-03-24 06:04:05       17 阅读
  4. Python编程异步爬虫——协程的基本原理

    2024-03-24 06:04:05       19 阅读
  5. Scala第十一章节(正则表达式和异常处理)

    2024-03-24 06:04:05       15 阅读
  6. Python XML 解析

    2024-03-24 06:04:05       20 阅读
  7. 特种兵旅游-扬州、南京

    2024-03-24 06:04:05       15 阅读
  8. vue3之声明式和编程式导航

    2024-03-24 06:04:05       21 阅读
  9. 5.83 BCC工具之tcplife.py解读

    2024-03-24 06:04:05       19 阅读