|
|
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; |
|
|
Adrian · MySQL为表中的每个ID选择最新的1行 8 年前 |
|
|
haxx · 从sql中的表中选择最后一条记录 8 年前 |
|
|
Filipe Ferminiano · 无法在mysql索引上强制索引 8 年前 |
|
|
nordscan · 带连接的SQL max() 8 年前 |
|
|
Kirill · 如何在左连接中按最大日期分组 8 年前 |
|
LPChip · MYSQL获取唯一ip的每个第一个id 8 年前 |