SQLite使用query方法取出某一列的值为最小的那一行

SQLite使用query方法取出某一列的值为最小的那一行

设计了一张表,三个属性,一个为ID,一个为Location,一个为Feature,没有设置约束,只要三列的值不完全一样即可.现在我要按照ID分组,然后每组取出一行,这一行必须满足的条件为该行在所在组的Location值为最小,请问该怎么做.下面是几次失败的尝试
Java code?12 Cursor c=read.query(DatabaseHelper.TABLENAME_2,                 new String[]{"ID","Location","Feature","MIN(Location) "},null,null,"ID","Location=Min(Location)","ID ASC");//取出所有病毒的第一段特征码
.

Java code?12 Cursor c=read.query(DatabaseHelper.TABLENAME_2,                 new String[]{"ID","Location","Feature","MIN(Location) M"},null,null,"ID","Location=M","ID ASC");//取出所有病毒的第一段特征码

我希望使用query方法来达成目的论文网 .

不一定可以用sql语句的    有时候读取别的程序的数据库就不能用sql语句了   不过看楼主的代码看来是读取自己的数据库了   那直接查询sql语句即可 这样子就免去了程序拼接sql语句的麻烦了  运行更快

Java code?12 Cursor c = read.execSQL("select ID,Location,Feature,Location from "+DatabaseHelper.TABLENAME_2+";");
写SQL,用execSQL(sql)来查

select  ID, min(location) from xxx group by ID;

这样去重之后倒是可以得到一行,但是没有读出Feature那一列;可是如果加上Feature的话,结果就是每个Feature都有一行,并且除了Feature自己这一列,其他两列的值是相等的。然后我想知道,是不是换一个写法直接查询SQL就能够实现了。如下:(聚合函数这么写应该没有错误吧)

Java code?1 Cursor c = read.execSQL("select ID,Location,Feature from "+DatabaseHelper.TABLENAME_2+"GroupBy ID ASC 

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有