力扣sql中等篇练习(三)
1 树节点
1.1 题目内容
1.1.1 基本题目信息
1.1.2 示例输入输出
1.2 示例sql语句
# not in匹配上了返回的值是1,casw when里面也是可以使用not in和子查询的
# 注意去重的时候需要筛选掉null值
SELECT id,
case when p_id is null then 'Root'
when (id not in (SELECT distinct p_id FROM tree WHERE p_id is not null))=1 then 'Leaf'
else 'Inner'
end type
FROM tree
1.3 运行截图
2 两人之间的通话次数
2.1 题目内容
2.1.1 基本题目信息
2.1.2 示例输入输出
2.2 示例sql语句
# 两个人之间的通话需要统计成一次
# 这种两个列名之间存在交换的情况 如 1,2 2,1这种可以考虑在分组函数里面使用least函数和greast函数
SELECT from_id person1,to_id person2,count(*) call_count,sum(duration) total_duration
FROM Calls
GROUP BY least(from_id,to_id),greatest(from_id,to_id)
2.3 运行截图
3 换座位
3.1 题目内容
3.1.1 基本题目信息
3.1.2 示例输入输出
文章来源:https://www.toymoban.com/news/detail-417320.html
3.2 示例sql语句
# case函数和if有时可以实现一样的功能
# MOD(N, M) 可以得到n除以m后的余数
SELECT IF(id%2=0,id-1,IF(id=(SELECT count(*) FROM Seat),id,id+1)) id,student
FROM Seat
ORDER BY id asc
3.3 运行截图
文章来源地址https://www.toymoban.com/news/detail-417320.html
到了这里,关于力扣sql中等篇练习(三)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!