SQL中的MAX函数返回的不是MAX值
我已经运行了数千次MAX()数据拉取,出于某种原因,这个查询返回了几行,而不是基于MAX函数中列的MAX值返回的一行 例如,我的数据看起来像:SQL中的MAX函数返回的不是MAX值,sql,duplicates,max,Sql,Duplicates,Max,我已经运行了数千次MAX()数据拉取,出于某种原因,这个查询返回了几行,而不是基于MAX函数中列的MAX值返回的一行 例如,我的数据看起来像: 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 下面是为简单起见而编辑的
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
根据示例结果,您的数据中存在问题。我想到两件事:
或A
列的值看起来相同,但不同(更可能的问题)B
- 您在
中有其他键,这些键不在分组依据
中(考虑到结果和查询之间的差异,可能存在)选择
TRIM()
或REPLACE()
函数删除它们
另外两个可能的原因是隐藏字符或看起来相似但不同的字符(例如1和小写L或0和大写o)。示例结果和查询不同。这使得其他人很难理解你的疑问和正在发生的事情。