在postgresql中将bool转换为int

Dan*_*sch 8 sql postgresql

我试图运行以下sql语句.

SELECT
item.item_number, SUM(item.item_active)
FROM 
public.item
GROUP BY item.item_number;
Run Code Online (Sandbox Code Playgroud)

我返回以下错误:

ERROR:  function sum(boolean) does not exist
Run Code Online (Sandbox Code Playgroud)

我想如果我可以使用函数将其更改item.item_active为整数,那么它可以采用活动记录的总和.

Gur*_*ngh 16

试试boolean_col::int:

SELECT
item.item_number, SUM(item.item_active::int)
FROM 
public.item
GROUP BY item.item_number;
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您获得的值是布尔值,那么您可以编写 case 语句来计算活动记录。

SELECT
item.item_number, SUM(case when item.item_active then 1 else 0 end)
FROM 
public.item
GROUP BY item.item_number;
Run Code Online (Sandbox Code Playgroud)