0
我在查詢數據庫以獲取最近24小時內輸入的值的遊標。我可以查詢並獲取所需的A_VALUE列的所有值,但我無法弄清楚如何以及在哪裏正確編寫子查詢,以便使用where子句參數獲取A_VALUE列的總和並獲取其值。任何想法將不勝感激。 (具有零編碼的背景和我正在學習從這個網站的一切,其他人)SQLite子查詢中where子句中列的總和
//當前代碼來獲取過去24小時內的值是:
String[] projection = {
DrinkContract.DrinkEntry._ID,
DrinkContract.DrinkEntry.COLUMN_A_VALUE,
DrinkContract.DrinkEntry.COLUMN_TIME_DATE};
//code to query databse for last 24 hours
String selection = DrinkContract.DrinkEntry.COLUMN_TIME_DATE + " BETWEEN strftime('%s', 'now', '-1 day') AND strftime('%s','now') ";
Cursor dayCursor = getContentResolver().query(
DrinkContract.DrinkEntry.CONTENT_URI, // Provider content URI to query
projection, // Columns to include in the resulting Cursor
selection, // selection clause
null,
DrinkContract.DrinkEntry.COLUMN_TIME_DATE); // Default sort order*/
if (dayCursor == null || dayCursor.getCount() < 1) {
return;
}
// Proceed with moving to the first row of the cursor and reading data from it
while (dayCursor.moveToNext()) {
int aValueColumnIndex = dayCursor.getColumnIndex(DrinkContract.DrinkEntry.COLUMN_A_VALUE);
int drinkTimeDateColumnIndex = dayCursor.getColumnIndex(DrinkContract.DrinkEntry.COLUMN_TIME_DATE);
// Extract out the value from the Cursor for the given column index
double aValue = dayCursor.getDouble(aValueColumnIndex);
System.out.println("The total a value is " + aValue);
總和是單個值,並且是從多行計算得出的。查詢中其他兩列的值應該是多少? –
我不需要其他欄目的總和。從我讀過的內容來看,它應該像在SELECT或WHERE子句中添加sum(DrinkContract.DrinkEntry.COLUMN_A_VALUE)或total(DrinkContract.DrinkEntry.COLUMN_A_VALUE)一樣簡單,以獲得該特定列的總和或總數,但我可以似乎沒有得到任何版本的工作。感謝您的回覆 – BSGpegasus
請提供一些樣本數據和您想要的輸出。 (請參閱[如何 格式化堆棧溢出中的SQL表 後?](https://meta.stackexchange.com/q/96125)如何添加一些。) –