【发布时间】:2016-11-11 17:41:11
【问题描述】:
我有一张包含我所有库存 ID 的表格,它们都重复了。所以我在看这样一张桌子:
ItemID | Price
1 | 5.50
1 | 5.50
2 | 6.50
2 | 6.50
等等..
现在,当我运行这样的查询时:
SELECT ItemID, COUNT(*) AS count
FROM Inventory
GROUP BY ItemID
我得到以下结果:
ItemID | count
1 | 1
1 | 1
2 | 1
2 | 1
为什么它明明是 2 却给了我 1?
编辑:正如大多数人指出的那样,这是由于 ItemID 中的一个额外字符。其中一个重复项有一个换行符。它是如何到达那里的,我不确定。不过谢谢你的帮助。
【问题讨论】:
-
ItemID 列是哪种数据类型?
-
我无法复制这个结果
-
这是您按预期工作的相同代码。可能 ItemID 是一个带有空格或什么的字符串? sqlfiddle.com/#!9/03df5/1
-
试试
SELECT LTRIM(RTRIM(ItemID)) AS id, COUNT(*) as count FROM Inventory GROUP BY LTRIM(RTRIM(ItemID)) -
那么您在 itemID 字段中隐藏了字符 .. 尝试使用 trim(itemID) 删除