我有一张表需要返回两个东西(最好只用一个查询):
1)每天唯一ID的计数
2)其他字段为“-”的唯一ID的行数。这意味着,如果同一天的ID在otherfield
中输入了两次值“-”,我希望将其视为一次计数。
示例表:
date | id | otherfield
----------
date1 | f | abc
date1 | p | -
date1 | p | -
date2 | f | abc
date2 | d | dee
应该返回表格:
date1 | 2 | 1
date2 | 2 | 0
目前我正在使用:
SELECT date, COUNT(DISTINCT `id`) AS id, SUM(IF(otherfield = '-', 1,0)) AS `undeclared` FROM mytable GROUP BY date
但是这个代码对otherfield中的所有值求和,对于id='p'的条目计数两次,我希望它只对不同的id计数。
提前感谢您。