【发布时间】:2019-02-26 16:25:57
【问题描述】:
一共有两张表。
表1
id integer
color_name character(64)
表2
id integer
jdata jsonb
Json 数据如下:
{"price": 4500, "colorId": 5}
我需要输出颜色和按颜色分组的项目数,所以我尝试使用此查询:
SELECT Table1.color_name, Table2.jdata ->> 'colorId', count(*)
FROM Table1
INNER JOIN Table2
ON Table1.id = Table2.jdata ->> 'colorId'
group by Table2.jdata ->> 'colorId';
我收到一个错误:
错误:运算符不存在:整数 = jsonb
我也试过执行这个:
select Table1.color_name, count(*)
from Table1
join Table2
on (Table2.jdata->>'colorId')::int = Table1.id
group by Table1.color_name
我得到了什么:
错误:无法将类型 jsonb 转换为整数
【问题讨论】:
-
显示最小样本数据,然后显示预期输出
-
您使用的是哪个数据库版本?
-
注意,这似乎已在 Postgres 11 中修复。
标签: json postgresql join