gpt4 book ai didi

sql - 如何在 Teradata 中一次从多个表中查找重复项?

转载 作者:行者123 更新时间:2023-12-04 01:03:47 26 4
gpt4 key购买 nike

数据仓库中有 40 个表。每天加载完成后,我都会检查表中是否存在任何数据问题。这是通过使用 select 查询来查找重复项来实现的。

SELECT COALESCE (SUM(DUPS),0) AS DUPS_COUNT, 'PLAYER' AS TABLENAME FROM (Select Count(1) AS DUPS from DW.PLAYER group by PLAYERID having count(1) > 1) A
UNION
SELECT COALESCE (SUM(DUPS),0) AS DUPS_COUNT, 'PlayerBalance' AS TABLENAME FROM (Select Count(1) AS DUPS from DW.PlayerBalance group by PlayerID,SiteID having count(1) > 1) B
UNION
.
.
.
.
.
UNION
SELECT COALESCE (SUM(DUPS),0) AS DUPS_COUNT, 'TABLE40' AS TABLENAME FROM (Select Count(1) AS DUPS from DW.TABLE40 group by PLAYERID having count(1) > 1) AK

一个表的示例输出:

enter image description here

我有选择查询来查找 40 个表中每个表的重复项。所有单独的 40 个 select 语句在逻辑和语法上都是正确的。但是我没有一次运行一个 SQL 选择,而是为每个表创建了一种通用格式,并对所有 40 个选择查询执行了 UNION

当运行包含 40 个选择查询和 UNION 的查询时,我看到输出仅针对 16 个表而不是 40 个表显示。

如何解决这个问题,以便一次性搜索所有 40 个表以查找重复项?

最佳答案

在 Teradata 中,第一次选择确定结果集的数据类型。 “PLAYER”是 VarChar(6),因此所有较长的名称(如“PlayerBalance”)都将被截断。然后 DISTINCT 删除现在重复的名称。

CAST('PLAYER' AS VARCHAR(128)) AS TABLENAME 添加到第一个 Select(并切换到 UNION ALL)。

关于sql - 如何在 Teradata 中一次从多个表中查找重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67212959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com