对以下格式的表进行操作:
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
Run Code Online (Sandbox Code Playgroud)
这就是我如何获得一列的最大值。
sqlite> SELECT MAX(weighted_dead_length) FROM mazes_100k;
MAX(weighted_dead_length)
-------------------------
996
Run Code Online (Sandbox Code Playgroud)
但是,它似乎不是真正的最大值:
sqlite> SELECT COUNT(*) FROM mazes_100k WHERE weighted_dead_length = 1000;
COUNT(*)
----------
15
Run Code Online (Sandbox Code Playgroud)
为什么如果我尝试计算列值高于MAX() 返回值的行数,我仍然会得到一些命中?好像 MAX() 没有返回列的真正最大值。
通过尝试错误,使用 COUNT(),似乎真正的最大值是 1004 - 我怎样才能让 MAX() 返回那个?
谢谢!
您将值存储为字符串而不是数字。将值转换为最大值的数字:
SELECT MAX(weighted_dead_length + 0)
FROM mazes_100k;
Run Code Online (Sandbox Code Playgroud)
或者:
SELECT MAX(CASt(weighted_dead_length as INTEGER) )
FROM mazes_100k;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1097 次 |
| 最近记录: |