我试图从我的数据库中提取一些统计数据。我有一张_employees
表,我希望按国家/地区计算员工数量。假设_employees
表有一列country
,我有一个关于聚合计数的键值表示的查询。
select json_object_agg(key, value)
from (
select distinct e.country
from _employees as e group by (e.country)
) as key,
(
select distinct count(1)
from _employees as e
group by(e.country)
) as value;
我想要这样的数据
{
"ET": 100,
"JM": 245 // And it will go on like this
}
但我收到了以下错误
键值必须是标量,而不是数组,复合或json。
可以这样做吗?有没有更好的方法来解决这个问题?
答案 0 :(得分:4)
在内部查询中选择具有每个国家/地区员工数量的国家/地区:
select json_object_agg(country, count)
from (
select country, count(*)
from _employees
group by 1
) s;