SQL中的MAX函数不返回最大值

时间:2018-08-21 23:45:16

标签: sql duplicates max

我已经运行了数千次MAX()数据,由于某种原因,此查询基于MAX函数中列的MAX值返回了几行而不是1行。

例如,我的数据如下所示:

Max(x) |  date       |  level_1   
4      |  2018-01-07 |  fer 
7      |  2018-01-07 |  fer

看起来应该像这样:

Max(x) |  date       |  level_1   
  7    |  2018-01-07 |  fer 

为简单起见,下面对我的查询进行了编辑。我想念什么吗?如果不太可能,行之间的数据格式是否可能不同?

SELECT 
    MAX(X) as max_x,
    date,
    level_1,
FROM
    table 
WHERE 
    date = '2018-01-07'
    and level_1 ='abc'
GROUP BY date,
    level_1

1 个答案:

答案 0 :(得分:0)

根据示例结果,您的数据存在问题。我想到两件事:

  • AB列的值看起来相同但不同(更可能是问题)。
  • GROUP BY中还有SELECT中没有的其他键(考虑到结果和查询之间的差异,可以这样做。)

最可能的原因是前导或尾随空格。您可以使用数据库中适当的TRIM()REPLACE()函数将其删除。

其他两个可能的原因是隐藏字符或看起来相似但不同的字符(例如1和小写L或0和大写o)。