对布尔值求和,然后仅在一定计数后显示

Sum Booleans and then display only over a certain count

我一直在用头撞墙。

我有一个 table DwgID (integer) 和 Current (boolean) 作为 table 的一部分。

我想做的是仅过滤选择了 1 个以上 CurrentDwgID

这段代码给出了正确的计数:

`SELECT "DwgID", SUM( CASE WHEN "Current" = 1 THEN 1 ELSE 0 END ) "Current" FROM "tblRev" GROUP BY "DwgID"`

但是,如果我尝试在 Current Count is > 1 中添加一个标准,它会失败,无法加载数据内容。

`SELECT "DwgID", SUM( CASE WHEN "Current" = 1 THEN 1 ELSE 0 END ) "Current" FROM "tblRev" GROUP BY "DwgID" HAVING ( ( SUM( CASE WHEN "Current" = 1 THEN 1 ELSE 0 END ) > 1 ) )`

我做错了什么?

您需要选择一个不同的别名,因为 Current 是列名。让我们称它为 NumCurrent

SELECT "DwgID", SUM( CASE WHEN "Current" = 1 THEN 1 ELSE 0 END ) "NumCurrent" FROM "tblRev" GROUP BY "DwgID" HAVING ( ( SUM( CASE WHEN "Current" = 1 THEN 1 ELSE 0 END ) > 1 ) )