【发布时间】:2018-12-06 22:02:03
【问题描述】:
我有一个非常简单的表格,如下所示:
id | custom_id | answer
----------------------------------
1 | 123 | Answer 1
__________________________________
2 | 123 | Answer 2
__________________________________
3 | 422 | Answer 3
__________________________________
4 | 345 | Answer 2
__________________________________
5 | 992 | Answer 1
__________________________________
6 | 452 | No answer
__________________________________
我要做的是计算Answer 1、Answer 2 等的数量。因此,对于上述数据,我希望得到:
2 * Answer 1
2 * Answer 2
1 * Answer 3
请注意,任何 No answer 都应该被丢弃。
然而,除此之外,我只想考虑每个custom_id 的一个答案,这应该是他们的第一个答案。所以真的,我期望得到的上述数据的输出应该是:
2 * Answer 1
1 * Answer 2
1 * Answer 3
这是因为我们只接受custom_id = 123 的第一个答案。
到目前为止,我进行了以下查询:
select
answer,
count(*) as totalCount
from
" . DB_TABLE . "
where
answer <> 'No answer'
group by
custom_id
但是,这似乎返回了总计数(正如我首先解释的那样),没有考虑到每个 custom_id 应该只有一个。我以为 group by 会解决这个问题,但似乎不是这样。
我怎样才能达到我所追求的结果?
谢谢
【问题讨论】:
标签: mysql