当前位置: 首页 > article >正文

「SQL面试题库」 No_36 树节点

🍅 1、专栏介绍

「SQL面试题库」是由 不是西红柿 发起,全员免费参与的SQL学习活动。我每天发布1道SQL面试真题,从简单到困难,涵盖所有SQL知识点,我敢保证只要做完这100道题,不仅能轻松搞定面试,代码能力和工作效率也会有明显提升。

1.1 活动流程

  1. 整理题目:西红柿每天无论刮风下雨,保证在8am 前,更新一道新鲜SQL面试真题。
  2. 粉丝打卡:粉丝们可在评论区写上解题思路,或者直接完成SQL代码,有困难的小伙伴不要着急,先看别人是怎么解题的,边看边学,不懂就问我。
  3. 交流讨论:为了方便交流讨论,可进入 数据仓库
  4. 活动奖励:我每天都会看评论区和群里的内容,对于积极学习和热心解答问题的小伙伴,红包鼓励,以营造更好的学习氛围。

1.2 你的收获

  1. 增强自信,搞定面试:在求职中,SQL是经常遇到的技能点,而这些题目也多数是真实的面试题,刷题可以让我们更好地备战面试,增强自信,提升自己的核心竞争力。

  2. 巩固SQL语法,高效搞定工作:通过不断练习,能够熟悉SQL的语法和常用函数,掌握SQL核心知识点,提高SQL编写能力。代码能力提升了,工作效率自然高了。

  3. 提高数据处理能力、锻炼思维能力:SQL是数据处理的核心工具,通过刷题可以让我们更好地理解数据处理的过程,提高数据分析的效率。SQL题目的难度不一,需要在一定时间内解决问题,培养了我们对问题的思考能力、解决问题的能力和对时间的把控能力等。

🍅 2、今日真题

题目介绍: 树节点 tree-node

难度中等

SQL架构

给定一个表

tree
id 是树节点的编号, p_id 是它父节点的 id 。

+----+------+
| id | p_id |
+----+------+
| 1  | null |
| 2  | 1    |
| 3  | 1    |
| 4  | 2    |
| 5  | 2    |
+----+------+

树中每个节点属于以下三种类型之一:

  • 叶子:如果这个节点没有任何孩子节点。
  • 根:如果这个节点是整棵树的根,即没有父节点。
  • 内部节点:如果这个节点既不是叶子节点也不是根节点。

写一个查询语句,输出所有节点的编号和节点的类型,并将结果按照节点编号排序。上面样例的结果为:

+----+------+
| id | Type |
+----+------+
| 1  | Root |
| 2  | Inner|
| 3  | Leaf |
| 4  | Leaf |
| 5  | Leaf |
+----+------+

解释

  • 节点 '1' 是根节点,因为它的父节点是 NULL ,同时它有孩子节点 '2' 和 '3' 。

  • 节点 '2' 是内部节点,因为它有父节点 '1' ,也有孩子节点 '4' 和 '5' 。

  • 节点 '3', '4' 和 '5' 都是叶子节点,因为它们都有父节点同时没有孩子节点。

  • 样例中树的形态如下:

​ 1 ​ / \ ​ 2 3 ​ / \ ​ 4 5

注意

如果树中只有一个节点,你只需要输出它的根属性。

```sql select id, (case when p_id is null then "Root" when id not in (select ifnull(p_id,0) from tree) then "Leaf" else "Inner" end) Type from tree

```

  • 已经有灵感了?在评论区写下你的思路吧!

http://www.kler.cn/news/11843.html

相关文章:

  • 【机器视觉------标定篇(二)】三点成圆算法(求相机旋转中心)
  • 【算法LearnNO.1】算法介绍以及算法的时间复杂度和空间复杂度
  • Python遥感开发之FY的批量处理
  • 关于二叉树访问顺序的选择题
  • 中核科技:科技匠心 智启未来
  • huggingface transformer模型介绍
  • 【记录】windows中edge常用快捷键
  • 统信UOS专业版系统安装教程 - 手动分区安装UOS系统
  • MinIO基础教程
  • 矩阵键盘+CH559制作国产USB矩阵键盘
  • 2023年4月 每日一题 day2
  • 丝滑的打包部署,一套带走~
  • tpm2-tools源码分析之tpm2_create.c(2)
  • 如何使用Socks5代理IP提高网络安全性
  • 【Python】ChatGPT入门
  • 找漏洞赚外快?给ChatGPT挑毛病,最高奖励14万
  • http状态码
  • Go并发(2)
  • JUC-01 线程的创建和状态转换
  • 浪潮:2022年净利同比增长51.39%
  • Windows服务器使用代码SSH免密登录并执行脚本
  • ChatGPT自动化提高工作效率: 2分钟快速生成思维导图
  • 中科图新BIM+GIS数字化设计施工管理解决方案
  • c++学习之类与对象2
  • Nest教程一(准备阶段)
  • JS面试题之ajax、axios、fetch的区别
  • React 搜索时遇到的坑
  • 适配器模式:C++设计模式中的瑞士军刀
  • 确保实时操作系统(RTOS)设备中的数据安全
  • RHCE第一次作业at和cront两个任务管理程序的区别