2010-06-25 67 views
2

我有看起来像这样的表:PostgreSQL的计数()和数组

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

episode_number是一个整数阵列,因为可以有特殊事件是为2的组合现在我想执行COUNT()以获得某个节目的剧集总数。

我的查询SELECT COUNT(id) FROM episodes WHERE show_id = 1不能正常工作,我不知道如何获得这种功能。它返回4,我需要一个查询,它将count数组中的数值总数和上面的数据返回5。

任何帮助表示赞赏。

回答

3

试试这个:

SELECT SUM(array_length(episode_number, 1)) 
    FROM episodes 
WHERE show_id = 1