如何计算所选列在查询结果中具有的唯一字段数

时间:2014-12-14 20:49:11

标签: php mysql

我有一个查询来获取webform提交。下面是查询及其返回的内容。我需要它来返回重复sid的计数,以获得满足我的数据变量的所有提交的计数。意思是,我希望它返回4,有什么建议吗?

SELECT sid, data
FROM webform_submitted_data
INNER JOIN node
ON webform_submitted_data.nid=node.nid
WHERE webform_submitted_data.nid= 15 AND webform_submitted_data.cid = 6 AND webform_submitted_data.data = 'male' OR webform_submitted_data.data = 'yes' AND webform_submitted_data.nid= 15 AND webform_submitted_data.cid= 15;


sid | Data
-----------
86  | male
86  | yes
87  | yes
88  | yes
90  | yes
91  | male
91  | yes
92  | male
92  | yes
93  | male
93  | yes
94  | yes

1 个答案:

答案 0 :(得分:1)

您可以按sid分组并计算您的数据:

SELECT sid, COUNT(*) as nb_sid
FROM webform_submitted_data
INNER JOIN node
ON webform_submitted_data.nid=node.nid
WHERE webform_submitted_data.nid= 15
    AND webform_submitted_data.cid = 6 
    AND webform_submitted_data.data = 'male' OR webform_submitted_data.data = 'yes'
    AND webform_submitted_data.nid= 15
    AND webform_submitted_data.cid= 15
GROUP BY sid;

如果需要,您可以在where子句中过滤nb_sid。 如果确实需要,您还可以使用group_concat获取数据中的值。