在postgresql中将bool转换为int
我正在尝试运行以下sql语句在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
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;
谢谢,我最喜欢这个解决方案,因为它是最简单的。