PostgreSQL count() 和数组

Ear*_*ind 3 sql postgresql count

我有一个看起来像这样的表:

                           episodes
------------------------------------------------------------
id (PK serial)  |  show_id (int4)  | episode_number (int2[])
------------------------------------------------------------
1               | 1                | {1}
2               | 1                | {2}
3               | 1                | {3}
4               | 1                | {4,5}
Run Code Online (Sandbox Code Playgroud)

Columnepisode_number是一个整数数组,因为可能有 2 的组合的特殊剧集。现在我想执行 COUNT() 来获取某个节目的总剧集数。

我的查询SELECT COUNT(id) FROM episodes WHERE show_id = 1无法正常工作,我不知道如何获得这种功能。它返回 4,我需要一个查询来获取 count 中数组值的总数,并且对于上述数据应该返回 5。

任何帮助表示赞赏。

Mar*_*tos 5

尝试这个:

SELECT SUM(array_length(episode_number, 1))
  FROM episodes
 WHERE show_id = 1
Run Code Online (Sandbox Code Playgroud)