SQL查询 - 选择不同主ID列的不同COUNT

时间:2017-01-28 15:41:42

标签: mysql sql count

我正在尝试计算我的表LogID列中有多少个人ID,这是我应该可以通过

轻松完成的事情。
$sql = ("SELECT COUNT(distinct LogID) FROM qci_dmlog_data");

LogID不是此表的主要/唯一ID列,而是一个在整个表中可以出现多次的引用号。事实上,我有9行,有8个UNIQUE LogID(前2个是相同的),但上面的代码总是吐出9

enter image description here

我在这里做错了什么? 感谢

2 个答案:

答案 0 :(得分:0)

你的代码吐出9的原因是因为看起来相同的两列不是。在这种情况下,可疑值是446289行。

我想这些值不是整数,因为有了整数"你看到的就是你得到的"。根据数据类型,可能有两种情况之一。

如果数据类型是浮点表示,则其中一个值可能类似于446288.999997。输出可能只是四舍五入到最接近的整数(出于某种原因)。

如果数据类型是字符串,则存在某种隐藏字符。这通常属于以下三类之一:

  • 字符串末尾的空格(或不太可能在开头)
  • 看起来像数字但不是数字的字符(想想" O"字母与" 0"数字)。扩展字符集时,这会变得更糟。
  • 不可打印的字符。

答案 1 :(得分:-1)

试试:

SELECT LogId, Count(LogId) AS count 
FROM qci_dmlog_data 
HAVING Count(LogId) = 1
GROUP BY LogId;

也许这会更适合你