加入 Fragment CTE 来构建我们合适的表
Posted
技术标签:
【中文标题】加入 Fragment CTE 来构建我们合适的表【英文标题】:Join Fragment CTE to construct our proper table 【发布时间】:2020-09-06 23:41:32 【问题描述】:这是我的查询
with cte as (
select mail
from dbo.reseau
where mail in
( select mail from dbo.reseau
group by mail
having count(1) > 1
) )
select * from (
select trig
from dbo.reseau
where trig in
( select trig from dbo.reseau
group by trig
having count(1) > 1
))t
select * from
(
select nom from reseau
where nom in (
( select nom from dbo.reseau
group by nom
having count(1) > 1
) ) )c
select * from (
select prenom from reseau
where prenom in (
( select prenom from dbo.reseau
group by prenom
having count(1) > 1)))r
我有 4 列,我写了这个 CTE 来显示重复的数据。我的查询分别显示它们。我想加入他们。我该怎么做?
【问题讨论】:
没有样本数据和预期输出就不可能知道。 【参考方案1】:如果您想要任何列包含重复值的行,您可以多次使用窗口函数:
select *
from (
select
r.*,
count(*) over(partition by mail) cnt_mail,
count(*) over(partition by trig) cnt_trig,
count(*) over(partition by nom) cnt_nom,
count(*) over(partition by prenom) cnt_prenom
from reseau
) t
where cnt_mail > 1 or cnt_trig > 1 and cnt_nom > 1 end cnt_prenom > 1
where
子句可以简化为:
where cnt_email + cnt_trig + cnt_nom + cnt_prenom > 4
【讨论】:
以上是关于加入 Fragment CTE 来构建我们合适的表的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SQL Server 的表值函数中使用 CTE 语句
Android学习路线(二十一)运用Fragment构建动态UI——创建一个Fragment