Node.js 使用Sequelize时,如何从具有字符串数组值(逗号分隔的数据)的列中获取不同的值计数?

Node.js 使用Sequelize时,如何从具有字符串数组值(逗号分隔的数据)的列中获取不同的值计数?,node.js,postgresql,sequelize.js,Node.js,Postgresql,Sequelize.js,我有一个postgresql数据库表,它有一个列,根据角色将选定的候选ID存储在字符串数组中。 例如: selectedCandidate ID以字符串数组格式保存为逗号分隔的数据。因此,如果要将数据存储在如下表中,我需要计算所选不同候选项的总数(SelectedCandidates列中的不同selectedCandidate ID总数): create table candidates ( id integer, selectedcandidates _text ); selec

我有一个postgresql数据库表,它有一个列,根据角色将选定的候选ID存储在字符串数组中。 例如:


selectedCandidate ID以字符串数组格式保存为逗号分隔的数据。因此,如果要将数据存储在如下表中,我需要计算所选不同候选项的总数(SelectedCandidates列中的不同selectedCandidate ID总数)

create table candidates (
   id integer,
   selectedcandidates _text
);
select candidate_id, count(candidate_id) 
  from candidates,
  lateral (select * from unnest(selectedcandidates)) cand(candidate_id)
 group by candidate_id;
还有一些数据:

 insert into candidates
  values
  (1, '{11d,3c,4f}'::text[]),
  (2, '{141d,34c,4f}'::text[]),
  (3, '{3c}'::text[]);
您可以这样计算候选事件:

create table candidates (
   id integer,
   selectedcandidates _text
);
select candidate_id, count(candidate_id) 
  from candidates,
  lateral (select * from unnest(selectedcandidates)) cand(candidate_id)
 group by candidate_id;
致以最诚挚的问候,

Bjarni

为什么要将ID和候选人存储在一列中?