Sql 比较Oracle中两个表之间的列计数

Sql 比较Oracle中两个表之间的列计数,sql,oracle,Sql,Oracle,我有两个具有相同列的表。一个表已更新,另一个是备份。我需要比较两个表中存在的特定列的计数,并需要查看哪些列计数不相同 到目前为止,我有一个疑问: 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.姓)

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

到目前为止,我有一个疑问:

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.姓)count(b.姓)

我猜你真的想要

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

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

您尝试过吗?(放在你的分组人后面-where count(a.last_name)!=count(b.last_name)我做了,但收到了一条错误消息。我在下面的“答案”中运行了查询,结果成功了。我可以通过在“分组人”之后添加“having count(a.matchkey_id)count(b.matchkey_id)”来运行我自己的查询。谢谢。这正是我要找的!