PostgreSQL-如何根据唯一行的总数创建条件

时间:2018-07-29 18:53:35

标签: sql postgresql count rows

我的目标是创建一个条件,其中唯一行数等于或大于3,

对于一个实例-如果我得到结果:

| id | 
1
2
3

然后有3行返回true。 (对于存在部分,我将使用EXISTS

我尝试使用COUNT(*)DISTINCT来计数所有不同的唯一行,但是由于我想使用条件-

  • 由于WHERE功能,不可能使用COUNT
  • 也不要使用HAVING-因为需要先使用GROUP BY,这会导致COUNT(*)=1

另一个要求-使用9.4版的PostgreSQL

我最近一次尝试失败,因为COUNT(*)=1

exists(
     select count(*)
     from (select sid, bno
           from schedule scj inner join revent on scj.eid = revent.reid
           where 12345 = cno AND 'hello' = sid) as foo
     group by sid, bno
     having count(*)>=3)

1 个答案:

答案 0 :(得分:1)

您将使用:

public MagickImage ReadNewMagickImageFromBinary(string fileName)
{
    var width = 1024;
    var height = 1024;
    var storageType = StorageType.Char;
    var mapping = "R";
    var pixelStorageSettings = new PixelStorageSettings(width, height, storageType, mapping);

    return new MagickImage(fileName, pixelStorageSettings);
}

select (count(*) >= 3) from result; 可以是CTE,子查询或其他查询逻辑,它们会在您的第一个结果集中生成行。

因此,如果这是您的查询:

result

那么逻辑是:

select sid, bno
from schedule scj inner join revent on scj.eid = revent.reid
where 12345 = cno AND 'hello' = sid