oracle中的sql查询,怎么使用distinct先做多个字段的拼接再去重?

例如:a、b表中均有学生姓名、学生性别、学生年龄字段。现对于同时满足这三个条件的学生进行去重查询,查出一共有多少学生。怎样写sql

-- union会去除重复行,union all不会去重,只是合并.
select count(1) from
(select

    a.name,

    a.gender,

    a.age 

from a

union

select

    b.name,

    b.gender,

    b.age 
 
from b
)

 

望采纳,谢谢!

SELECT COUNT(1) AS 一共有的学生数量 from(SELECT DISTINCT(a.学生姓名,a.学生性别,a.学生年龄) from  学生  a) 

 

-- 或着试下这种
select count(1) from 
  (select distinct a.name,a.gender,a.age from
    (select

       a.name,

       a.gender,
 
       a.age 
      
    from a

    union all

    select

       b.name,

       b.gender,
   
        b.age 
 
     from b
   )
)