Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android sqLite-使用CAST修改列中的GROUP BY_Android_Sqlite_Group By - Fatal编程技术网

Android sqLite-使用CAST修改列中的GROUP BY

Android sqLite-使用CAST修改列中的GROUP BY,android,sqlite,group-by,Android,Sqlite,Group By,我正在开发Android SQLite(使用Galaxy s2进行测试) 我解决不了这个问题 我有这样一个数据库: COORDINATES id latitude longitude 1 37.996163 -116.644592 2 37.996163 -116.644592 3 37.957507 -116.67467 4 36.370157 -91.156311 我运行查询: select CAST((latitude*10) AS UNSIGNED) AS lat,

我正在开发Android SQLite(使用Galaxy s2进行测试) 我解决不了这个问题

我有这样一个数据库:

COORDINATES
id latitude   longitude
1  37.996163  -116.644592
2  37.996163  -116.644592
3  37.957507  -116.67467
4  36.370157  -91.156311
我运行查询:

select CAST((latitude*10) AS UNSIGNED) AS lat, CAST((longitude*10) AS UNSIGNED) AS lon from coordinates group by lat,lon
我期望:

lat  lon
379  -1166
363  -911
相反,我得到:

lat  lon
379  -1166
379  -1166
363  -911
对值执行“分组依据”​​不通过CAST修改 我做错了什么?mysql上的同一个查询工作得非常好


谢谢,试试这个,我不确定这是否有效,但我知道select子句中的更改在where、group…中不起作用,所以试试这个

select CAST((latitude*10) AS UNSIGNED) AS lat, CAST((longitude*10) AS UNSIGNED) AS lon
from coordinates 
group by CAST((latitude*10) AS UNSIGNED), CAST((longitude*10) AS UNSIGNED)

sqlite没有
无符号
数据类型,对其进行强制转换实际上没有任何作用。在调用例如
Cursor
getInt()
将其转换为整数之前,这些值都是浮点值

转换为例如
整数

sqlite> create table coordinates(id integer primary key, latitude, longitude);
sqlite> insert into coordinates values(1,37.996163,-116.644592),(2,37.996163,-116.644592),(3,37.957507,-116.67467),(4,36.370157,-91.156311);
sqlite> .head on
sqlite> select CAST((latitude*10) AS UNSIGNED) AS lat, CAST((longitude*10) AS UNSIGNED) AS lon from coordinates group by lat,lon;
lat|lon
363.70157|-911.56311
379.57507|-1166.7467
379.96163|-1166.44592
sqlite> select CAST((latitude*10) AS INTEGER) AS lat, CAST((longitude*10) AS INTEGER) AS lon from coordinates group by lat,lon;
lat|lon
363|-911
379|-1166
sqlite> 
设置“整数”而不是“无符号”效果很好。我可以这样使用您的建议:按CAST((纬度*10)作为整数)从坐标组中选择MAX(id),CAST((经度*10)作为整数)