17,377
社区成员
发帖
与我相关
我的任务
分享
with
tb1 as (select name,count(*) as t1_count from t1 group by name),
tb2 as (select name,count(*) as t2_count from t2 group by name),
tb3 as (select name,count(*) as t3_count from t3 group by name),
tb4 as (select name,count(*) as t4_count from t4 group by name),
tb5 as (select name,count(*) as t5_count from t5 group by name),
tb6 as (select t1.name from t1 union all
select t2.name from t2 union all
select t3.name from t3 union all
select t4.name from t4 union all
select t5.name from t5 ),
tb7 as (select tb6.name from tb6 group by tb6.name)
select tb7.name,tb1.t1_count,tb2.t2_count,tb3.t3_count,tb4.t4_count,tb5.t5_count
from tb1,tb2,tb3,tb4,tb5,tb7
where tb7.name=tb1.name(+) and
tb7.name=tb2.name(+) and
tb7.name=tb3.name(+) and
tb7.name=tb4.name(+) and
tb7.name=tb5.name(+);
with t1 as (
select 'zhangsan' name ,'1 4 5 3 1' col from dual
union all select 'lisi','2 3 6 0 0' from dual
union all select 'lisi','1 3 6 0 0' from dual)
,t2 as (
select 'zhangsan' name ,'2 4 5 3 1' col from dual
union all select 'lisi','3 3 6 0 0' from dual
union all select 'lisi','4 3 6 0 0' from dual
union all select 'lisi','5 3 6 0 0' from dual)
,t3 as (
select 'zhangsan' name ,'2 4 5 3 1' col from dual
union all select 'zhangsan','3 3 6 0 0' from dual
union all select 'zhangsan','4 3 6 0 0' from dual
union all select 'lisi','6 3 6 0 0' from dual
union all select 'wokao','7 3 6 0 0' from dual)
--查询
select a.name,count(a.name),count(b.name),count(c.name),count(a.name)+count(b.name)+count(c.name)
from t1 a,t2 b,t3 c
where a.name=b.name and b.name= c.name
group by a.name
--瞎写的
--瞎编的表数据
with t1 as (
select 'zhangsan' name ,'1 4 5 3 1' col from dual
union all select 'lisi','2 3 6 0 0' from dual
union all select 'lisi','1 3 6 0 0' from dual)
,t2 as (
select 'zhangsan' name ,'2 4 5 3 1' col from dual
union all select 'lisi','3 3 6 0 0' from dual
union all select 'lisi','4 3 6 0 0' from dual
union all select 'lisi','5 3 6 0 0' from dual)
,t3 as (
select 'zhangsan' name ,'2 4 5 3 1' col from dual
union all select 'zhangsan','3 3 6 0 0' from dual
union all select 'zhangsan','4 3 6 0 0' from dual
union all select 'lisi','6 3 6 0 0' from dual
union all select 'wokao','7 3 6 0 0' from dual)
--查询
select name,sum(cnt) cnt
from (
select name,count(1) cnt from t1 group by name
union all
select name,count(1) cnt from t2 group by name
union all
select name,count(1) cnt from t3 group by name
) t
group by name
having count(name) > 1