select min(lead), max(lead)
from products
WHERE part_line != 90 and category = 'x'
当我运行上述查询时,返回的min大于max。如果我删除条件pline!= 90,问题就会消失。
我一开始认为mysql在进行pline之前正在处理min,max ...但这并不能解释为什么它会分配更高的min。
什么让我,当我得到avg()它正确计算。
发生了什么事?
答案 0 :(得分:8)
也许您的字段被视为文本,例如21将小于3(字母顺序) 如果该字段是TEXT的类型,则尝试将值转换为INT()
答案 1 :(得分:0)
这是一个sql server示例:
with Test_CTE (first, second, third)
as(
select '21 ', 'b', 1
union
select '3 ', 'd', 2
)
select MIN(first) as Minimum, MAX(first) as Maximum
from Test_CTE
输出
Minimum Maximum
21 3
请注意,值是带有尾随空格的文本数据,因此它的排序方式与可能期望的方式不同。