如何获取postgres中字段的计数?

qkf9rpyu  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(353)

我有一张table orders 其结构如下:

create table orders (id serial primary key, created_at timestamp, updated_at timestamp, product_id varchar[]);

对于产品标识,我插入如下数据:

insert into orders values (1,now(),now(),'{"1","2"}');

这个 product_id 保存按特定顺序订购的不同产品。中有一个条目 products 每个 product_id .
现在我想知道 product_id 为了一个特定的订单。
示例:对于我所做的上述插入,我应该得到如下结果:

Id    Count
1     2

postgresql怎么可能?
编辑:对不起,打扰了 create table 查询。它是varchar[]而不是varchar(255)

7fhtutme

7fhtutme1#

可以将值转换为数组并测量值的数量:

select o.*, cardinality(product_id)
from orders o
eiee3dmh

eiee3dmh2#

ddl地址:

CREATE TABLE tbl1 (id integer, count json);

INSERT INTO tbl1 (id, count) values (1, '["1", "2"]'::json), (2, '["3", "45"]');

查询:

SELECT id, sum(json_array_length(count)) as count from tbl1 group by id order by id;

结果:

id | count 

----+-------

  1 |     2

  2 |     2

我真的希望能有帮助

相关问题