如果我有两个表 -Table_A
并且Table_B
- 如果我LEFT JOIN
用来连接它们,我如何只过滤那些与多次
Table_B
连接的行?数据库风格:TeradataTable_A
问问题
315 次
4 回答
1
如果我没记错的话,Teradata 支持窗口函数,所以这可能有效:
select *
from (
select a.*,
b.*
count(*) over (partition by a.MyCol) as cnt
from Table_A a
left join Table_B b ON a.MyCol = b.MyCol
where ... -- Conditions
) t
where cnt > 1
(未测试)
于 2013-03-25T09:32:20.313 回答
1
这是您接受的答案的特定于 Teradata 的版本:
select a.*,
b.*
from Table_A a
left join Table_B b
ON a.MyCol = b.MyCol
where ... -- Conditions
QUALIFY count(*) over (partition by a.MyCol) > 1
请注意,这QUALIFY
是对 ANSI 标准的 Teradata 扩展(也是一个方便的扩展)。
于 2013-03-25T20:32:37.480 回答
0
Select a.*,b.* from Table_A a
left join Table_B b on condition
HAVING COUNT(DISTINCT a.value)>1
进行必要的编辑和检查
于 2013-03-25T09:07:53.350 回答
0
可能对你有帮助
1) you can used INNER JOIN .
2) you can also check joind row is not null or blank .
于 2013-03-25T09:06:51.393 回答