SQLite选择sum和case

时间:2017-11-27 12:04:24

标签: android sqlite android-sqlite

我的表格如下:

ID | FLAG | audit
1  |   1  |   12
2  |   0  |   12
3  |   1  |   12
4  |   1  |   12

我想在FLAG列中计算1的值,因此我使用此代码执行此操作:

databaseHandler

public int getall(){
   String countQuery = "select count(audit) as jumlahaudit, SUM (CASE WHEN flag=1 " +
   "THEN 1 ELSE 0 END) FROM API GROUP BY audit";

   // still get 1 using this code
   // String countQuery = "select flag, count(*) from API group by flag ";
   SQLiteDatabase db = this.getReadableDatabase();
   Cursor cursor= db.rawQuery(countQuery, null);
   return cursor.getCount();
}

MainActivity

public class MainActivity extends AppCompatActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        db.getall();

        Log.d("COba yang ke dua", String.valueOf(db.getall()));
        }
}

我预计logcat会得到3的结果,但logcat会显示1,即使我正在使用其他查询,

logcat

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

cursor.getCount()将返回行数。所以你的查询结果是" 3"但" 1"一排。像这样:

Count
-----
  3   (1 row)

正确的代码应该是

cursor.getInt(0);

用于阅读" 3"

相关问题