我有一张包含所有库存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中有一个额外的字符。有一个换行符,其中一个是重复的。怎么到那里,我不确定。但感谢您的帮助。
答案 0 :(得分:0)
如果ItemId
看起来像一个数字,那么您将其转换为数字:
SELECT ItemID + 0, COUNT(*) AS count
FROM Inventory
GROUP BY ItemID + 0;
然而,根本问题是你似乎在ItemId
中有你不期望的角色。这些可能就像字符串末尾的空格一样简单,也可能是另一种隐藏字符。
答案 1 :(得分:0)
有很多方法,比如添加coloum_name + 0和trim(coloum_name),但你应该这样做 将您的表ItemID更改为int或使用trim
更新表数据答案 2 :(得分:0)
尝试使用
删除隐藏的字符SELECT trim(ItemID), COUNT(*) AS count
FROM Inventory
GROUP BY trim(ItemID)
答案 3 :(得分:0)
SELECT itemId,count(count)as have_this_many
来自库存
WHERE(SELECT DISTINCT(itemId)= itemId)
GROUP BY itemId
ORDER BY itemId
我不确定字段名称等于SQL函数会产生什么影响,但我会将其命名为“on_hand”。