如果这是一个愚蠢的问题,我很抱歉,但我最近开始学习 SQL,并且目前正在尝试清理数据集。 然而,有些条目有错误,比如在文本后面有一个“”(我猜)。我的目标是计算每个条目的所有实例,但在本示例中,我出现了两个“4wd”实例。我怎样才能使它们相同?这是查询的屏幕截图和结果表
我还不知道很多命令,所以我尝试了 WHERE SUBSTRING(drive_wheels, 1, 3) = '4wd'。这不起作用,即使它起作用了,我想它也只会给我“4wd”的计数,所以我迷路了......提前致谢!
就像您在评论中发现的那样,您可以在查询数据时修复数据,例如通过修剪前导和尾随空格:
SELECT trim(drive_wheels), count(*)
FROM automobiles
GROUP BY trim(drive_wheels);
用
UPDATE
清理数据可能会更好。
为了避免此类问题,有以下几种技巧:
您可以使用
BEFORE INSERT
触发器来修复插入的数据
如果存在拼写错误,您可以使用检查约束抛出错误
您可以创建一个包含允许值的查找表并存储该表的数字主键而不是字符串,而不是存储字符串