1
5
Oracle 9i+,使用行号:
Oracle 9i+,使用WITH和ROW_编号:
|
2
0
每当您看到“仅适用于301事件类型”的内容时,您应该希望在where子句或having子句中看到相同的限制(“having”基本上是“group by”结果的where子句)。 这么说吧,你可以从下面的几句话开始,然后背单词。 其中事件类型=301; 然后您可以填写一些基本信息,例如字段所在的表。 选择* 从事件 其中事件类型=301; 现在,您可以开始考虑根据PROJECT_ID将类似的事件分组在一起。为了使事情更简单,我们只使用PROJECT_FK,因为它相当于PROJECT.PROJECT_ID。 选择项目 从事件 其中事件类型=301 按项目分组; 现在,事件表中的所有项目都分组在一起,但我们没有任何信息。我们正在寻找单个事件的详细信息,以便在有多个事件时只选择单个事件ID。MIN()和MAX()都可以。所以你可以写: 选择项目'u FK,MIN(事件'u ID) 从事件 其中事件类型=301 按项目分组; 上面的查询为event表中的每个项目提供了一个事件,但没有提供其他事件详细信息。让我们把上面的结果集与事件表结合起来,我们就可以找到答案了。所以 选择表2* 从事件表1 加入 ( 选择项目'u FK,MIN(事件'u ID) 从事件 其中事件类型=301 按项目分组 )表2 表1.PROJECT_FK=表2.PROJECT_FK; 现在我们只需要加入项目表。每当您看到“事件字段中应该返回空值/空白值”时,您应该考虑外部连接。所以您可以继续链接表连接以获得所需的结果集。例如 选择* 从项目左外部联接 ( 选择表2* 从事件表1 加入 ( 选择项目'u FK,MIN(事件'u ID) 从事件 其中事件类型=301 按项目分组 )表2 表1.PROJECT_FK=表2.PROJECT_FK; ) 在PROJECT_ID=PROJECT_FK; |
maddy · 如何根据oracle SQL中的某一列值进行排名 1 年前 |
kiric8494 · 显示以元音开头和结尾的城市名称 2 年前 |
Franz Biberkopf · Oracle:组合子查询和聚合函数 2 年前 |
BitLauncher · 甲骨文-如何模拟位列和布尔和/或? 2 年前 |
Arifullah · 如何从oracle中的列中删除特定的初始字符? 2 年前 |
Anar · Oracle SQL用户定义函数 2 年前 |
user1312312 · 如何为一组表编写通用触发器? 2 年前 |