Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为SQL重复查询返回0或1_Sql_Teradata - Fatal编程技术网

为SQL重复查询返回0或1

为SQL重复查询返回0或1,sql,teradata,Sql,Teradata,与Teradata合作如果这很重要 我有一张类似这样的重复支票: SELECT ID, COUNT(*) FROM TBL_A HAVING COUNT(*) > 1 GROUP BY ID; 如果没有重复项,则返回0行,如果有重复项,则显示它们是什么。这很好,但我想要的是返回0(如果没有重复项)或1(如果找到重复项)。就这样 有什么想法吗?谢谢 我认为最简单的方法是一个案例: select (case when count(id) = count(distinct id) then 0

与Teradata合作如果这很重要

我有一张类似这样的重复支票:

SELECT ID, COUNT(*)
FROM TBL_A
HAVING COUNT(*) > 1
GROUP BY ID;
如果没有重复项,则返回0行,如果有重复项,则显示它们是什么。这很好,但我想要的是返回0(如果没有重复项)或1(如果找到重复项)。就这样


有什么想法吗?谢谢

我认为最简单的方法是一个
案例

select (case when count(id) = count(distinct id) then 0 else 1 end)
from tbl_a;

注意:当id具有
NULL
值时,它将忽略id。如果需要考虑到这一点,修改查询很容易。

我认为最简单的方法是使用
案例:

select (case when count(id) = count(distinct id) then 0 else 1 end)
from tbl_a;

注意:当id具有
NULL
值时,它将忽略id。如果您需要考虑到这一点,那么很容易修改查询。

如果有多列键,则不能使用Gordon的apporach,因为聚合函数只能在单个列上工作

一种可能的解决方法是将这些列合并成这样一个列

COUNT(column1 || column2 || column3)
但这可能不是很有效

否则,您需要使用派生表添加另一个计数:

select case when count(*) = 0 then 0 else 1 end
from
 (
   SELECT column1, column2, column3, COUNT(*)
   FROM TBL_A
   GROUP BY 1,2,3
   HAVING COUNT(*) > 1
) as dt

您应该比较资源使用情况,对于单列,应该类似于计数(不同ID)
,但对于多列,应该使用更少的CPU。

如果有多列键,则不能使用Gordon的apporach作为聚合函数,因为聚合函数只能在单列上工作

一种可能的解决方法是将这些列合并成这样一个列

COUNT(column1 || column2 || column3)
但这可能不是很有效

否则,您需要使用派生表添加另一个计数:

select case when count(*) = 0 then 0 else 1 end
from
 (
   SELECT column1, column2, column3, COUNT(*)
   FROM TBL_A
   GROUP BY 1,2,3
   HAVING COUNT(*) > 1
) as dt

您应该比较资源使用情况,对于单列,应该类似于
COUNT(DISTINCT ID)
,但是对于多列,应该减少CPU。

对于每个ID,您需要这样的信息吗?@vkp这是出于自动测试目的而需要的另一个查询。我仍然有初始查询,可以运行该查询来显示重复项本身,但我需要一种方法来为此指定0和1。谢谢。每个id都需要这些信息吗?@vkp这是自动测试所需的另一个查询。我仍然有初始查询,可以运行该查询来显示重复项本身,但我需要一种方法来为此指定0和1。谢谢,行了,谢谢。这将用于自然键列,因此不会出现空值。我假设,如果在它们的键中有多个字段,我会像平常一样将这些字段附加到两个count()部分。谢谢。这将用于自然键列,因此不会出现空值。我假设如果它们的键中有多个字段,我会像平常一样将这些字段附加到两个count()部分。