PostgreSQL count () и массивы - PullRequest
2 голосов
/ 25 июня 2010

У меня есть таблица, которая выглядит следующим образом:

                           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, и мне нужен запрос, который принимает общее количество значений массива в счетчике и который должен возвращать 5 для вышеуказанных данных.

Любая помощь приветствуется.

1 Ответ

3 голосов
/ 25 июня 2010

Попробуйте это:

SELECT SUM(array_length(episode_number, 1))
  FROM episodes
 WHERE show_id = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...