我有一张银行账户表:
Column | Type | Modifiers | Storage | Stats target | Description
---------------+-----------------------+-------------------------------------------------------------------------+----------+--------------+-------------
id | integer | not null default nextval('bank_accounts_id_seq'::regclass) | plain | |
name | character varying(50) | | extended | |
bank_accounts | jsonb | not null | extended | |
它在jsonb
列中有一些JSON:
id | name | bank_accounts
----+-------+--------------------------------------------------------------------------
1 | test1 | [{"name": "acct1", "balance": -500}, {"name": "acct2", "balance": -300}]
我使用jsonb\u array\u元素来获取一个用户的帐户列表:
select jsonb_array_elements(bank_accounts)->>'name' as name, jsonb_array_elements(bank_accounts)->>'balance' as balance from bank_accounts;
name | balance
-------+---------
acct1 | -500
acct2 | -300
太好了。但我如何让每一行都有一个唯一的id呢?我想将每一行映射到一个hibernate对象,但我很难做到这一点,因为我找不到让每一行都具有唯一id的方法。
使用JOIN LATERAL
尝试不同的、干净的方法:
SELECT b.id, t.rn
, t.account->>'name' AS name
, t.account->>'balance' AS balance
FROM bank_accounts b
LEFT JOIN LATERAL jsonb_array_elements(b.bank_accounts)
WITH ORDINALITY AS t (account, rn) ON true;
如果您不喜欢在银行账户中有空值或空值的行,请使用更简单的交叉联接:
SELECT ...
FROM bank_accounts b
, jsonb_array_elements(b.bank_accounts) WITH ORDINALITY AS t (account, rn);
关键成分是with ORDINALITY
,用于动态生成设置返回函数的行号。它是在Postgres 9.4中引入的——就像jsonb
一样。
rn
在银行账户
中每个基础行都是唯一的
要在整个结果集中保持唯一性,请将其与b.id结合使用。
关于带序数的:
相关:
问题内容: 我和这里的问题差不多。 我有一个包含等的数组。现在,我想从该数组中选择所有唯一元素。思想,这将是简单的用或因为他们在其他问题中提到,但没有在数组中改变…的代码是: 我究竟做错了什么? 问题答案: 有点hacky,但是应该这样做: 要将排序后的唯一结果保存回数组,请执行数组分配: 如果您的外壳支持herestrings(应该),则可以通过将其更改为以下内容来节省进程: 输入: 输出: 说
问题内容: jQuery.unique允许您获取数组的唯一元素,但是文档说该函数主要供内部使用,并且仅对DOM元素起作用。另一个SO响应说该函数可以在数字上使用,但是此用例不一定是将来的证明,因为在文档中未明确说明。 鉴于此,是否存在“标准” jQuery函数,用于仅访问数组中的唯一值(特别是整数之类的基元)?(显然,我们可以使用函数构造一个循环,但是我们是jQuery的新手,并且想知道是否为此使
问题内容: 如何获得数组中唯一值的列表?我是否总是必须使用第二个数组,或者是否有类似于JavaScript中Java哈希表的东西? 我将仅使用 JavaScript 和 jQuery 。不能使用其他库。 问题答案: 由于我在@Rocket答案的注释中继续进行了讨论,因此我不妨提供一个不使用任何库的示例。这需要两个新的原型函数,并且 为了提高可靠性,可以用MDN的垫片代替,并检查每个元素的值是否等于
我有以下数组 我想从这个数组中得到唯一的值。所以我希望我的结果是这样的 我使用了数组唯一函数,但无法得到结果 如果我有两个索引,这是有效的,但是对于多个索引呢?
我想从这个链接获取一个url: 它给出结果: { " data ":{ " URL ":" https://FBC dn-profile-a . akamaihd . net/hprofile-AK-xa P1/t 1.0-1/s200x 200/10342822 _ 10202261537234765 _ 3194866551853134720 _ n . jpg "," is_silhouet
问题内容: 编辑:这不是如何获取列表元素的所有可能组合的精确重复? 本主题是关于查找唯一组合,而另一主题是关于查找所有组合。 如果我有python列表: 从以下列表中获取3个元素的所有可能 唯一组合 的最佳方法是什么: 组合中元素的顺序无关紧要。例如,和将被视为相同的组合。 我可能可以编写一些循环来执行此操作,但我认为可能会有一个单行代码可以执行相同操作。 问题答案: 您需要: