【发布时间】:2017-06-26 09:21:05
【问题描述】:
我有一张表,我需要在其中返回两件事(最好使用一个查询):
1) 每个日期的唯一 ID 计数
2) otherfield = "-" 为唯一 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。
提前谢谢你。
【问题讨论】: