我已经运行了数千次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
答案 0 :(得分:0)
根据示例结果,您的数据存在问题。我想到两件事:
A
或B
列的值看起来相同但不同(更可能是问题)。GROUP BY
中还有SELECT
中没有的其他键(考虑到结果和查询之间的差异,可以这样做。)最可能的原因是前导或尾随空格。您可以使用数据库中适当的TRIM()
或REPLACE()
函数将其删除。
其他两个可能的原因是隐藏字符或看起来相似但不同的字符(例如1和小写L或0和大写o)。