我有一个users表,看起来像这样,其中有一个数组列,包含用户正在跟踪的其他用户的ID。
----------------------------------------
| Field | Type |
----------------------------------------
| id | id |
| email | varchar |
| following_users_ids | array[] |
----------------------------------------
要为表中的每个用户获取followers的数量(followers_count
),SQL查询应该是什么?following_users_ids数组中的following_users_ids的数量基本上是至少有一个用户的数量。
表格内容示例:
--------------------------------------------------
| id | email | following_users_ids |
---------------------------------------------------
| 1 | foo@bar.com | {2,3} |
---------------------------------------------------
| 2 | ffooo@bb.com | {1} |
---------------------------------------------------
| 3 | bbb@bbb.com | {} |
---------------------------------------------------
结果:
------------------------------------------------------------------------
| id | email | following_users_ids | followers_count |
------------------------------------------------------------------------
| 1 | foo@bar.com | {2,3} | 1 |
------------------------------------------------------------------------
| 2 | ffooo@bb.com | {1,3} | 1 |
------------------------------------------------------------------------
| 3 | bbb@bbb.com | {} | 2 |
------------------------------------------------------------------------
1条答案
按热度按时间4jb9z9bj1#
使用自联接:
在db<>fiddle.中测试