I have a pretty simple table like this:
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 __________________________________ What I am trying to do is count the number of Answer 1, Answer 2, etc. So, for the above data I would expect to get:
2 * Answer 1 2 * Answer 2 1 * Answer 3 Note, that anything that is No answer should be discarded.
However, further to the above, I want to take into account only one answer per custom_id, and this should be their first answer. So really, the output I expect to get for the above data should be:
2 * Answer 1 1 * Answer 2 1 * Answer 3 This is because we take only the first answer for custom_id = 123.
So far, I have made the following query:
select answer, count(*) as totalCount from " . DB_TABLE . " where answer <> 'No answer' group by custom_id However, this seems to return the total counts (as I explained first), not taking into consideration that there should only be one per custom_id. I thought the group by would solve this issue, but this does not seem to be the case.
How can I achieve the results I am after?
Thanks