如何在JSON列中查询PostgreSQL中唯一的对象值

亚历克斯·梅洛佐(Alex Melluzzo)

我正在查询表以查找给定JSON列中的值的不同列表。

在下面的代码段中,Survey_Results表具有3列:“名称”,“电子邮件”和“有效载荷”。有效负载是我要查询的JSON对象。

Table Name: Survey_Results

Name         Email                      Payload

Ying         [email protected]     [
                                      {"fieldName":"Product Name", "Value":"Calculator"},
                                      {"fieldName":"Product Price", "Value":"$54.99"}
                                      ]

Kendrick     [email protected]        [
                                      {"fieldName":"Food Name", "Value":"Texas Toast"},
                                      {"fieldName":"Food Taste", "Value":"Delicious"}
                                      ]

Andy         [email protected]   [
                                      {"fieldName":"Band Name", "Value":"MetalHeads"}
                                      {"fieldName":"Valid Member", "Value":"TRUE"}
                                      ]

我正在寻找提到的所有fieldNames的唯一列表。

理想的答案是查询,为我提供一个包含“产品名称”,“产品价格”,“食品名称”,“食品口味”,“乐队名称”和“有效成员”的列表。

在Postgres中可能会发生这种情况吗?

克林

使用jsonb_array_elements()在横向联接:

select distinct value->>'fieldName' as field_name
from survey_results
cross join json_array_elements(payload)

  field_name   
---------------
 Product Name
 Valid Member
 Food Taste
 Product Price
 Food Name
 Band Name
(6 rows)    

如何找到不同的食品名称值?

select distinct value->>'Value' as food_name
from survey_results
cross join json_array_elements(payload)
where value->>'fieldName' = 'Food Name'

  food_name  
-------------
 Texas Toast
(1 row)

Db <>小提琴。

重要。注意,json结构是不合逻辑的,因此不必要地又大又复杂。代替

[
    {"fieldName":"Product Name", "Value":"Calculator"},
    {"fieldName":"Product Price", "Value":"$54.99"}
]

采用

{"Product Name": "Calculator", "Product Price": "$54.99"}

打开此db <> fiddle,以查看正确的json结构意味着更简单,更快速的查询。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在MySQL Group By查询中查找唯一值?

如何在SQL查询后给定的每列中具有唯一值的行数

如何从数组PostgreSQL的列中获取唯一值

如何在Jq中组合(连接)包含公共键名但唯一值的JSON对象

如何在PostgreSQL中的jsonb列中查询值?

如何在PostgreSQL 9.3中查询json对象的date字段?

如何在 df 列中获取唯一值?

如何在Excel的列中获取唯一/唯一值?

如何在json列中查询空对象?

如何在一个json对象中查询多行

如何在jmespath查询中的数组中获取唯一值?

如何在Swift3 iOS中从对象数组中查找唯一值

如何在对象的JavaScript数组中查找重复值,并仅输出唯一值?

如果值是对象数组,如何在MongoDB集合中列出唯一值?

如何在Postgresql中查询XML列?

如何为python列中的每个唯一值创建一个虚拟对象

SQL查询以确定列中的值是唯一的

如何在ionic 2中对唯一JSON对象形式的JSON数组进行排序

如何使用Jora查询来计算JSON中的唯一值

如何使postgresql中的每一列分别唯一?

如何在 Angularjs 中从对象到数组插入唯一值

如何选择与 PostgreSQL 中另一列的最高值的唯一列值对相对应的行?

如何在mysql中的列中添加唯一的随机值

如何在熊猫数据框中的所有列中获取唯一值

如何在R中的数据框中将每个唯一值的列值转换为行?

如何在 PySpark 中通过具有唯一值的列值标记连续重复项?

如何在Unix命令的两列中获得具有相同值的唯一值

在 JSON 对象列表中查找唯一值

我如何计算 MySQL 查询中的唯一(不同)值