首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL面试题003-行与行的比较

,有两个方案可以考虑 将两个学期的得分情况构造为子查询 分别将近两个学期的得分情况构造为子查询,然后将两个子查询相关联( JOIN ),便可以对两次得分情况进行比较,这是一种比较简单的解题思路,具体的解题过程留给你思考...ORDER BY expr [ASC|DESC],... ) 其参数介绍如下: expression LAG() 函数返回 expression 当前行之前的行的值,其值为 offset 其分区或结果集中的行数...default_value 如果没有前一行,则 LAG() 函数返回 default_value 。例如,如果 offset 为2,则第一行的返回值为 default_value 。...ORDER BY 子句 ORDER BY 子句指定在 LAG() 应用函数之前每个分区中的行的顺序。LAG() 函数可用于计算当前行和上一行之间的差异。...另外,由于每个人的上学期成绩没有前一个学期的成绩,所以一年级期末的 former_socre 都是空值。该比较结果需要进行特殊指定。

8310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SQL 找出分组中具有极值的行

    你可能也遇到过这种需求:找出每个部门入职最早的员工的信息;获取每个科目最高分的学生信息;获取用户最近一次的完整登录信息。...这些需求有两个共同点:一是需要做分组,有按部门分组、有按科目、也有按用户分组;二是在分组里面找到存在极值的行,是整行数据,而不只是极值。...窗口函数 如果你在用 MySQL 5.8+,窗口函数可能是你最先想到的办法,因为它足够简洁、简单。 先按部门分组,再对组内按照薪资降序排序,取排序序号为 1 的行即为部门最高薪资的员工的信息。...WHERE b.sal IS NULL ORDER BY a.deptno 我们知道,在SELECT * FROM a left join b on 关联条件 语句中 ,不论在 b 表中是否有数据行可以和...当 a.sal 是分组的内的最大值时,a.sal 的条件不成立,关联出来的结果中 b 表的数据为 NULL。

    1.8K30

    如何在矩阵的行上显示“其他”【2】

    很明显,我们想的是让others在最后一行: 这样,前10名是放在一起的,others放在最后一行。...真实的业务场景往往就是如此,我们只关心前10名的情况,前10行就给我老老实实地放这10个类别,剩下的放在最后一行,对于others,我关心的只是份额,甚至我一点也不关心,因为加在一起都不足10%。...而按照表中的列进行排序,我们完全可以使用“按列排序”的办法来实现按照其他列来排序,所以这个时候选择子类别2,进行“按列排序”,我们选择表中的sales.rankx,这样就用sales.rankx的大小来表示子类别的显示...比如,当使用切片器时,我选择不同的年份,子类别的排序是不同的,甚至显示的子类别也不相同: 上图我们要特别注意,不论我选择哪一年,others永远是在最后一行,而且上面的10行数据都是按照从大到小的顺序排列...说明:示例中,选择不同年份,总计值的占比不为100%,但这个不是本文要说明的主要问题,所以就没再修改。实际情况中,还是要注意的。

    1.6K10

    如何在矩阵的行上显示“其他”【1】

    想要的结果如下(前10名显示,后面的为others): 思路上其实非常简单:通过构建一个新的表,将销售额度量值放进去,排序,前10名用原先的类别,后面的都替换为others,拖到表中排序即可。...尤其是这么多年的教学工作,我深深认识到,作为一名教师,给他们传授知识与技能、过程与方法仅仅是皮毛,最核心的应该传授给他们认识问题、分析问题、拆解问题、逐个解决问题的方法论,也就是情感态度与价值观问题。...上面这个问题其实简单,解决也很快速,但是我会分为多篇文章来写,每一篇文章的最后我会放一个图,用该篇文章的办法是做不到的,但是只要再多写几步,就可以完成,大家可以先进行思考,请大家持续关注。...基本上满足了小白的要求。 当然,美中不足的是,因为others这一行在中间,看着就有点别扭。...按照我个人的习惯,是前10行从大到小排列的子类别,最后一行显示others,如下图所示: 这个问题解决起来也不是很困难,关注【学谦数据运营】,下一篇详细解

    1.8K20

    列存储、行存储之间的关系和比较

    三、行列存储比较 将表放入存储系统中有两种方法,而我们绝大部分是采用行存储的。行存储法是将各行放入连续的物理位置,这很像传统的记录和文件系统。然后由数据库引擎根据每个查询提取需要的列。...3.2基于列的存储 基于列的访问存在的缺点是载入速度通常比较慢,因为源数据在外部来源中是以行或者记录的形式表示的。这样做的优点是针对某个列中的值进行简单查询的速度非常快,需要的内部存储资源最少。...在多选择列之间, 选择某一列作为基列(左列), 跟其他相关列两两绑定在一起。根据左列的筛选条件进行分区, 并建立该分区的索引, 重新存储为M(crackermap)。...本文根据关系代数表达式的下推规则来执行不同空间的谓词下推; 并使用列的级联规则合并同列选择谓词[12]; 最后处理列间的连接谓词。...可见 M 模型能够评估选择最优的连接策略,本算法能够有效地优化查询计划。不仅如此, 本文算法具有较好的可扩展性, 算法思想能在开源列存储系统上通用。

    6.7K10

    Map集合比较本来需要10行代码的,现在只需要1行搞定太高效了

    Map集合操作 业务场景:如2个城市集合 code:cityName,你需要计算他们的交集、左集、右集 求2个Map集合的交集、左集、右集 Maps.difference,就这么一行代码,你就可以轻松计算出来你需要的结果...计算结果 比自己写代码去实现,太高效了 不理解左集的可以看看输出结果 如求不存在map1里的map的数据是多少 set的交集、并集、差集 代码也非常简洁高效 总结 工具类用的好,不仅可以提高代码开发效率...,还能减少BUG发生 不要小看这些工具类,在你加班熬夜改BUG时,换一个实现方式,你会发现原来这么简单,在看看自己写的那10多行工具方法真的想哭

    1.5K20

    矩阵中战斗力最弱的 K 行

    题目 给你一个大小为 m * n 的矩阵 mat,矩阵由若干军人和平民组成,分别用 1 和 0 表示。 请你返回矩阵中战斗力最弱的 k 行的索引,按从最弱到最强排序。...如果第 i 行的军人数量少于第 j 行,或者两行军人数量相同但 i 小于 j,那么我们认为第 i 行的战斗力比第 j 行弱。 军人 总是 排在一行中的靠前位置,也就是说 1 总是出现在 0 之前。...= [[1,1,0,0,0], [1,1,1,1,0], [1,0,0,0,0], [1,1,0,0,0], [1,1,1,1,1]], k = 3 输出:[2,0,3] 解释: 每行中的军人数目...: 行 0 -> 2 行 1 -> 4 行 2 -> 1 行 3 -> 2 行 4 -> 5 从最弱到最强对这些行排序后得到 [2,0,3,1,4] 示例 2: 输入:mat = [[1,0,0,0...], [1,1,1,1], [1,0,0,0], [1,0,0,0]], k = 2 输出:[0,2] 解释: 每行中的军人数目: 行 0 -> 1 行 1 -> 4 行 2 -> 1

    26930

    矩阵中战斗力最弱的 K 行

    题目 给你一个大小为 m * n 的矩阵 mat,矩阵由若干军人和平民组成,分别用 1 和 0 表示。 请你返回矩阵中战斗力最弱的 k 行的索引,按从最弱到最强排序。...如果第 i 行的军人数量少于第 j 行,或者两行军人数量相同但 i 小于 j,那么我们认为第 i 行的战斗力比第 j 行弱。 军人 总是 排在一行中的靠前位置,也就是说 1 总是出现在 0 之前。...= [[1,1,0,0,0], [1,1,1,1,0], [1,0,0,0,0], [1,1,0,0,0], [1,1,1,1,1]], k = 3 输出:[2,0,3] 解释: 每行中的军人数目...: 行 0 -> 2 行 1 -> 4 行 2 -> 1 行 3 -> 2 行 4 -> 5 从最弱到最强对这些行排序后得到 [2,0,3,1,4] 示例 2: 输入:mat = [[1,0,0,0...],  [1,1,1,1],  [1,0,0,0],  [1,0,0,0]], k = 2 输出:[0,2] 解释: 每行中的军人数目: 行 0 -> 1 行 1 -> 4 行 2 -> 1

    34020

    如何在矩阵的行上显示“其他”【3】切片器动态筛选的猫腻

    往期推荐 如何在矩阵的行上显示“其他”【1】 如何在矩阵的行上显示“其他”【2】 正文开始 上一篇文章的末尾,我放了一张动图: 当年度切片器变换筛选时,子类别中显示的种类和顺序是不相同的,但不变的是...: ①others永远显示在最后一行 ②显示的10个子类别按照sales或sales%从高到低排序 看上去好像不难。...others 这样选择不同年份时,就会显示不同的子类别,others内包含的信息也就不同了。...选中子类别2,点击“按列排序”,选择按照sales.oneyear.rankx2排序,但是我们发现: 原因说的很清楚。...你也可能会说,当切片器选择某一具体年的时候,桌子是9还是7这个问题是固定的,比如,切片器选择了2019,桌子的排序就固定是7。

    2.5K20

    【数据结构】数组和字符串(五):特殊矩阵的压缩存储:稀疏矩阵——压缩稀疏行(CSR)

    接受矩阵的行数、列数和非零元素的个数作为参数,并返回创建的CSR矩阵。...接受一个指向CSR矩阵的指针 matrix,以及要设置的元素的行索引、列索引和值作为参数。 在函数内部,首先检查行索引是否有效,如果无效则打印错误信息并返回。...然后,根据行索引找到对应行的起始位置,将元素的行索引、列索引和值分别赋给对应的矩阵元素,并更新 col_indices 数组和 row_ptr 数组中的值。...通过遍历非零元素数组,将值、行索引和列索引分别赋给对应的矩阵元素,并更新 col_indices 数组和 row_ptr 数组中的值。...它接受一个CSR矩阵作为参数,并按矩阵的行数和列数遍历矩阵元素,通过遍历 row_ptr 数组和 col_indices 数组来获取每个位置的元素值,并打印出矩阵的形式。

    16610

    数据处理第3部分:选择行的基本和高级的方法

    Basic row filters 在许多情况下,您不希望在分析中包括所有行,而只包括选择的行。 仅使用特定行的函数在dplyr中称为“filter()”。...=“Rodentia”)将选择除Rodentia行之外的所有内容。 *filter(name>“v”)只会在字母v之后选择字母中带有名称的行。 如果要选择多个动物,可以使用%in%运算符。...以下代码将仅选择具有属于Didelphimorphia和Diprotodontia顺序的动物的行。...过滤所有 不可否认,msleep并不是展示这种能力的最佳数据库,但想象一下,你有一个包含几列的数据库,并且你想要选择在任一列中都有某个单词的所有行。...Vesper Mouse的遗体缺失,但这是我仍然可以挖掘并添加到数据框的信息,如果我想要的话。 所以想象一下,我想找出前几列中我们NA的所有数据行。

    1.3K10

    matlab 行 读取文件 跳过_Matlab读取TXT文件并跳过中间几行的问题!!

    大家好,又见面了,我是你们的朋友全栈君。 #!MLF!...245.424423 9500000 9500000 sp -1.203973 9500000 9900000 ih -343.396576 information 如上边TXT文档内容有三组数据,我不想要这三组数据的两行标题...,只想要从0到information中间的矩阵。...请问编程才能跳过这两行标题不读,直接读取矩阵? 每组数据都要计算,就是说读到第一个information后开始计算前边的数据,然后跳过两行在读取第二组数据并计算。...计算内容就是矩阵的第二列减第一列 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    1.9K30

    问与答113:如何定位到指定的列并插入公式到最后一行?

    引言:本文整理自vbaexpress.com论坛,供有兴趣的朋友学习参考。 Q:我有多个工作表,每个工作表中都有一个Date列,但其位置都不相同,如下图1至图3所示。 ? 图1 ? 图2 ?...例如,对上图1所示的工作表,拆分成如下图4所示。 ? 图4 如何定位到Date列,然后在其右侧插入4列,并使用公式在各列输入相应的内容?...A:可以使用一段简单的代码,如下: Sub WHATIWANTITTODO() Dim r As Range Set r = Cells.Find("Date") r.Offset...代码使用Find方法在工作表中查找内容为“Date”的单元格。 2. 在该单元格右侧插入4列。 3. 使用Array函数分别在每列的开头输入相应的内容。 4. 使用RC样式输入公式。 5....初学者注意体会Resize属性、Offset属性的使用。

    1.8K30

    【linux命令讲解大全】058.comm命令:比较和分析已排序文件的行差异

    comm 按行比较两个已排序的文件。 概要 comm [OPTION]... FILE1 FILE2 主要用途 按行比较两个已排序的文件。当FILE1或FILE2为-时,读取标准输入。...无选项时输出三列,第一列为FILE1独有的行,第二列为FILE2独有的行,第三列为FILE1,FILE2共有的行。 选项 -1 不输出第一列。 -2 不输出第二列。 -3 不输出第三列。...-z, --zero-terminated 设置行终止符为NUL(空),而不是换行符。 --help 显示帮助信息并退出。 --version 显示版本信息并退出。...aaa.txt中出现的行,第二列包含在bbb.txt中出现的行,第三列包含在aaa.txt和bbb.txt中相同的行。...比较排序过的文档 先通过 sort 将文件内容排序: [root@localhost ~]# sort aaa.txt > aaa1.txt [root@localhost ~]# sort bbb.txt

    11810
    领券