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

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

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

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

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

方法1

sql 复制代码
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

sql 复制代码
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

另外的思路:

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

-- 思路:

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

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

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

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

sql 复制代码
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
相关推荐
风跟我说过她13 小时前
SQL 一键转经典 Chen 风格 ER 图:开源 CLI + 在线工具 + Agent Skill
数据库·python·sql·开源·开源软件
Q264336502317 小时前
【有源码】基于机器学习的电信网络诈骗话术语义识别与可视化分析系统 XGBoost算法+Hadoop+Spark
大数据·hadoop·算法·机器学习·spark·毕业设计·课程设计
Q264336502318 小时前
【有源码】基于 Hadoop 的强化学习智能体轨迹数据挖掘与可视化分析系统大数据毕设项目
大数据·hadoop·机器学习·数据挖掘·spark·课程设计·数据可视化
兀兀术18 小时前
windows下忘记pgsql密码
sql·pgsql
熊文豪19 小时前
OceanBaseVS金仓:一条 SQL 的两条路——KingbaseES 的性能竞争力从哪来
数据库·sql·电科金仓
倔强的石头_20 小时前
让 AI 直接查公司数据库?先给 SQL 加三道闸:基于蓝耘 MaaS 的只读查询助手
sql
cspttty21 小时前
2026年财务分析岗JD中的Excel、SQL、BI与业务分析要求
大数据·sql·excel
cspttty21 小时前
HR数字化校招准备路线:Excel、SQL、BI和AI工具怎么学
人工智能·sql·excel
Q264336502321 小时前
【有源码】基于大数据的药品多维度属性分析可视化系统 基于Spark的药品属性聚类与关联规则可视化分析系统
hadoop·机器学习·数据挖掘·spark·毕业设计·课程设计·大数据项目
网络豆21 小时前
Apache Hive 鸿蒙 PC 适配全记录:以 Qt 客户端打通 HiveQL、监控与元数据访问
hive·apache·harmonyos