比较Oracle中2个表之间的列数

时间:2015-08-10 16:56:02

标签: sql oracle

我有2个具有相同列的表。一个表已更新,另一个表是备份。我需要比较2个表中存在的特定列的计数,并且需要查看哪些列数不相同。

到目前为止我有这个问题:

select a.id, count(a.last_name), b.id, count(b.last_name)
from updatedTable a
join backupTable b on a.id = b.id
group by a.contact_id, b.contact_id

上面的查询运行了,但我想知道这个: 其中count(a.last_name)<>计数(b.last_name)

1 个答案:

答案 0 :(得分:1)

我的猜测是你真的想要

SELECT *
  FROM (SELECT a.id, count(a.last_name) num_last_names
          FROM tableA a
         GROUP BY a.id) a
       INNER JOIN
       (SELECT b.id, count(b.last_name) num_last_names
          FROM tableB b
         GROUP BY b.id) b
       ON( a.id = b.id )
 WHERE a.num_last_names != b.num_last_names

它分别对每个表进行分组,然后进行连接并比较聚合列中的数据。