美文网首页程序员
leetcode数据库类型:1179.重新格式化部门表,难度:简

leetcode数据库类型:1179.重新格式化部门表,难度:简

作者: TedMosbyy | 来源:发表于2022-10-25 22:14 被阅读0次

leetcode数据库类型:1179.重新格式化部门表,难度:简单

解答:

      这道题首先利用group by使得department表按照id进行分组,生成一张虚拟表。在这张虚拟表中,所有id=1的revenue的数据都写在了同一个单元格中,如当id=1时,8000、7000、6000都是写在同一个单元格内,这种虚拟表可以帮助我们理解group by的作用。其次,case when的原理是当一个单元格中有多个数据时,case when只会提取当中的第一个数据,以case when month='Feb' then revenue end为例,当id=1时,它只会提取当中的第一个数据,即Jan,它不等于Feb。所以找不到Feb对应的revenue,所以返回为null,那该如何解决单元格内含多个数据的情况呢?答案就是使用聚合函数,聚合函数就是用来输入多个数据,输出一个数据的,如sum或max,而每个聚合函数的输入就是每一个多数据的单元格,以sum(cae when month = 'Feb' then revenue end)为例,当id=1时,它提取的Jan、Feb、Mar,从中找到了附和条件的Feb,并最终返回对应的revenue。

相关文章

网友评论

    本文标题:leetcode数据库类型:1179.重新格式化部门表,难度:简

    本文链接:https://www.haomeiwen.com/subject/fdxjzrtx.html