在postgresql中将bool转换为int

在postgresql中将bool转换为int,sql,postgresql,Sql,Postgresql,我正在尝试运行以下sql语句 SELECT item.item_number, SUM(item.item_active) FROM public.item GROUP BY item.item_number; 我返回以下错误: ERROR: function sum(boolean) does not exist 我想如果我可以使用一个函数将项.item\u active更改为整数,那么它可以取活动记录的总和 试试boolean\u col::int: SELECT item.item

我正在尝试运行以下sql语句

SELECT
item.item_number, SUM(item.item_active)
FROM 
public.item
GROUP BY item.item_number;
我返回以下错误:

ERROR:  function sum(boolean) does not exist

我想如果我可以使用一个函数将
项.item\u active
更改为整数,那么它可以取活动记录的总和

试试
boolean\u col::int

SELECT
item.item_number, SUM(item.item_active::int)
FROM 
public.item
GROUP BY item.item_number;
SELECT
item.item_number, SUM(case when item.item_active then 1 else 0 end)
FROM 
public.item
GROUP BY item.item_number;

若您得到的值是布尔值,那个么您可以编写case语句来统计活动记录

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

谢谢,我最喜欢这个解决方案,因为它是最简单的。