当前位置: 首页 > 面试题库 >

如何在Oracle中合并一组记录?

诸葛乐逸
2023-03-14
问题内容

考虑下表,

Name    | Subject_1    | Marks_1    | Subject_2    | Marks_2    |
Tom     | Maths        | 90         |              |            |
Tom     |              |            | Science      | 50         | 
Jon     |              |            | Science      | 70         |
Jon     | Maths        | 60         |              |            |

我如何获得以下结果

Name    | Subject_1    | Marks_1    | Subject_2    | Marks_2    |
Tom     | Maths        | 90         | Science      | 50         |
Jon     | Maths        | 60         | Science      | 70         |

尝试过的形式GROUP BY但未获得正确的结果,数学将始终放在Subject_1之下,而Science总是在SUbject_2之下。


问题答案:

使用:

  • 最大限度
  • 通过…分组

    SQL>选择名称,
    2个最大(subject_1)subject_1,
    3个最大(marks_1)个marks_1,
    4个MAX(subject_2)subject_2,
    5个最大(marks_2)个marks_2
    6从t
    7 GROUP BY名称;


    NAME SUBJECT_1 MARKS_1 SUBJECT_2 MARKS_2

    乔恩·数学60科学70
    汤姆数学90科学50

    SQL>

附带说明一下,您需要考虑您的 桌子设计 。您只能有3列,name, subject, marks

如果您想在同一张表中有 单独的列 ,那么对于每个学生,您都应该将它们作为 一行 。并且,当您为学生准备了新的科目时,请为该学生 更新
行,而不是添加新行。



 类似资料:
  • 问题内容: 我有3个文本字段,其中用户键入表名和2个需要合并的列名。 如何将2列值合并(合并)为1? 我使用oracle 11g企业版 问题答案: 串联?

  • 问题内容: 您好,我想基于数组中的唯一项合并数组。 我拥有的对象 在这个totalCells数组中,我有几个这样的对象 现在,我想制作一个数组,在该数组中我可以基于lineNumber进行数组组合。 就像我有一个具有lineNumber属性和cellWidth集合的对象。我可以这样做吗? 我可以遍历每一行并检查行号是否相同,然后按该单元格宽度。有什么办法我可以算吗? 我正在尝试获得这样的输出。 问

  • 问题内容: 我有一个带有4列的(example-)数据框: 我现在想将B,C和D列合并/合并到新的E列,如本例所示: 我在这里发现了一个非常类似的问题,但这在A列的末尾添加了合并的列B,C和D: 感谢帮助。 问题答案: 选项1 使用和 选项2 使用分配和 选项3 最近,我喜欢第3个选项。 使用

  • 问题内容: 我有两个数组。 我需要合并这些数组,并在下拉列表中显示为 我怎么能使用swift.im新手来快速获得此结果,有人可以帮忙吗? 问题答案: 压缩数组并连接结果:

  • 我最近写了 这似乎很尴尬。我知道(以及其他一些包)定义了 但即便如此,这一切都感觉有点手动。有什么我没见过的收紧它的好模式吗?

  • 问题内容: 如何在PHP中合并n个数组 我的意思是我怎么可以这样做的工作: OR 里面有多个数组的数组在哪里,像这样: 我的结果是: 我需要的是 问题答案: array_merge可以接受可变数量的参数,因此,使用一些call_user_func_array技巧,您可以将数组传递给它: 基本上可以像输入以下内容一样运行: 更新: 现在有了5.6,我们有了运算符来将数组解压缩为参数,因此您可以: 并