Sql 我做错了什么?试图在子查询中将具有相同行id的行id联接以派生计数
因此,我试图获得一个用户链接到的文件数量的计数。但是,由于某些奇怪的原因,par_row_ID(原始_表标识符)没有连接,我的结论如下:Sql 我做错了什么?试图在子查询中将具有相同行id的行id联接以派生计数,sql,oracle,Sql,Oracle,因此,我试图获得一个用户链接到的文件数量的计数。但是,由于某些奇怪的原因,par_row_ID(原始_表标识符)没有连接,我的结论如下: SELECT file_count.par_row_id, original_table.par_row_id, file_count.count FROM original_table original_table left outer join (SELECT original_table.par_row_id
SELECT file_count.par_row_id,
original_table.par_row_id,
file_count.count
FROM original_table original_table
left outer join (SELECT original_table.par_row_id,
Count(*) AS count
FROM original_table original_table
WHERE type_code = 'file'
GROUP BY original_table.par_row_id) file_count
ON original_table.par_row_id = file_count.par_row_id;
我做错了什么?提前感谢。您的别名不是最直观的,但是查询应该会返回一些连接结果。我想知道您是否愿意做以下工作:
select ot.par_row_id,
nvl(x.c,0) as cnt
from original_table ot
left outer join (
select par_row_id,
count(*) as c
from original_table
where type_code = 'file'
group by par_row_id
) x
on ot.par_row_id = x.par_row_id;
Oracle是我正在使用的。抱歉,我添加了一个建议标签,但没有查看Oracle说了什么?有错误吗?还是什么也不回?内联视图(您的文件计数)是否返回任何内容?可能的话,发布一个测试用例,这样我们就可以看一看了。没有语法错误但是为什么要使用
original\u table
来别名original\u table
,请以o
为例。顺便问一下,您是否至少有一行填充了not null par\u row\u id
列,并且值为type\u code
asfile
(都是小写字母,区分大小写也可能导致键入错误)。我将更改别名。我让它工作,我需要右连接而不是左连接。我不确定为什么我仍然会返回两个par_row_id的所有空值,因为一些奇怪的原因,你必须发布你的架构,如果可能的话,发布一些数据-我只是在精炼你发布的确切SQL。结果证明,使用右外部联接而不是左外部联接(出于一些奇怪的原因)