在以下格式的表格上操作:
name size solution_length solution_forks backtravel_parallel backtravel_perp forks_to_dead dead_overlap weighted_dead_length
------------------------ ---------- --------------- -------------- ------------------- --------------- ------------- ------------ --------------------
AldousBroder_5_33342.txt 5 14 4 0 0 4 26 444
AldousBroder_5_05916.txt 5 28 4 4 0 4 28 728
这就是我获取列的最大值的方式。
sqlite> SELECT MAX(weighted_dead_length) FROM mazes_100k;
MAX(weighted_dead_length)
-------------------------
996
然而,它似乎并不是真正的最大值:
sqlite> SELECT COUNT(*) FROM mazes_100k WHERE weighted_dead_length = 1000;
COUNT(*)
----------
15
为什么如果我尝试使用列更高的值计算行数而不是MAX()返回的行数,我还会得到一些命中?好像MAX()不会返回列的真实最大值。
通过试用错误,使用COUNT(),似乎真正的最大值是1004 - 我怎样才能让MAX()返回?
谢谢!
答案 0 :(得分:3)
您将值存储为字符串而不是数字。将值转换为max:
的数字SELECT MAX(weighted_dead_length + 0)
FROM mazes_100k;
或:
SELECT MAX(CASt(weighted_dead_length as INTEGER) )
FROM mazes_100k;