sql - 比较 ROW COUNT 的结果
问题描述
我在同一台服务器上有 2 个数据库,我需要比较每个数据库的寄存器,因为其中一个数据库没有导入所有信息
我试图做一个 ROW 计数,但它不起作用
目前我正在做大约 100,000 行的包,并在 Excel 中查找它们。
假设我想要一个查询,对表 A 中的每个 ID 进行计数,然后比较每个 ID 的计数结果 VS TABLE B 计数,因为它们是相同的 ID,所以计数应该相同,我希望这会给我带来计数之间存在任何不匹配的 ID。
解决方案
这个问题很模糊,但也许这个 SQL 代码可能会帮助你朝着正确的方向前进。
它从数据库 1 中获取每个 ID 的 ID 和计数,从数据库 2 中获取 ID 和 ID 的计数,并将它们进行比较,列出计数不同的所有行。
WITH DB1Counts AS (
SELECT ID, COUNT(ID) AS CountOfIDs
FROM DatabaseOne.dbo.TableOne
GROUP BY ID
), DB2Counts AS (
SELECT ID, COUNT(ID) AS CountOfIDs
FROM DatabaseTwo.dbo.TableTwo
GROUP BY ID
)
SELECT a.ID, a.CountOfIDs AS DBOneCount, b.CountOfIDs AS DBTwoCount
FROM DB1Counts a
INNER JOIN DB2Counts b ON a.ID = b.ID
WHERE a.CountOfIDs <> b.CountOfIDs
此 SQL 使用“Database.Schema.Table”表示法从特定 ID 中进行选择。因此,将“DatabaseOne”和“DatabaseTwo”替换为您的两个数据库的名称。当然,用您的表格名称替换 TableOne 和 TableTwo(我假设它们是相同的)。这设置了两个选择,每个数据库一个,按 ID 分组以获取每个 ID 的计数。然后它在 ID 上连接这两个选择,并返回计数不同的所有行。
推荐阅读
- multithreading - 我使用锁定例程执行任务的实现有什么问题?
- python - 神经网络没有预测正确的数字
- wordpress - 为什么我可以在 ACF 要求的空白字段中提交我的帖子?
- logging - opencensus Azure 处理程序在 Azure 函数应用上创建重复日志
- javascript - React JS - 应用程序没有填满整个页面
- reactjs - 材料ui反应js按钮文本未显示
- python - 透明头像不和谐py命令
- php - php html 打印文件内容 - 在 docker 上
- apache-beam - 当一个主题有多个主题时,如何处理来自 Kafka(使用 Apache Beam)的 Avro 输入?
- servicenow - ServiceNow 中的 ITSM SKU 是什么