2010-06-25 5 views
2

J'ai une table qui ressemble à ceci:nombre de PostgreSQL() et les tableaux

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

colonne episode_number est un tableau entier, car il peut y avoir des épisodes spéciaux qui sont une combinaison de 2. Maintenant, je voudrais effectuer un COUNT() pour obtenir le nombre total d'épisodes pour un certain spectacle.

Ma requête SELECT COUNT(id) FROM episodes WHERE show_id = 1 ne fonctionne pas correctement et je n'ai aucune idée de comment obtenir ce type de fonctionnalité. Il retourne 4 et j'ai besoin d'une requête qui prend le nombre total de valeurs de tableau en nombre et qui devrait retourner 5 pour les données ci-dessus.

Toute aide est appréciée.

Répondre

3

Essayez ceci:

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