SQLite запрос с средним значением
Я пишу программу, застрял на моменте написания одного сложного запроса. Описание: Есть записи по дням, в отчете должно быть: итоговое кол-во дней (записей в день может быть несколько) из выборки и средние значения данных. Никак не могу понять что делаю не так, я новичок. Помогите...
fun reportSevenDays(SecondDay: String) {
val db = this.writableDatabase
var ListReport = ArrayList<report>()
val Qquery = " INSERT INTO $TABLE_REPORT ($SUMM_DAY, $SUMM_B, $SUMM_Z, $SUMM_U, $SUMM_KK) SELECT COUNT (DISTINCT $DATE_D) FROM ( SELECT AVG($COL_B, $COL_Z, $COL_U, $COL_KK) FROM (SELECT * FROM $TABLE_NAME WHERE $DATE_D <= '$SecondDay'))"
val cursor = db.rawQuery(Qquery, null)
cursor.moveToFirst()
while (! cursor.isAfterLast) {
val stat = report()
stat.summ_day = cursor.getInt(cursor.getColumnIndex(SUMM_DAY))
stat.summ_b = cursor.getInt(cursor.getColumnIndex(SUMM_B))
stat.summ_z = cursor.getInt(cursor.getColumnIndex(SUMM_Z))
stat.summ_u = cursor.getInt(cursor.getColumnIndex(SUMM_U))
stat.summ_kk = cursor.getInt(cursor.getColumnIndex(SUMM_KK))
ListReport.add(stat)
cursor.moveToNext()
}
cursor.close()
db.close()
}
Логика, для понятности, ниже. Делаем выборку из максимального значения:
SELECT * FROM $TABLE_NAME WHERE ($DATE_D <= '$SecondDay')
После данного действия нам необходимо высчитать параметры: несколько средних значений и одно значение, показывающее количество дней( данное значение без учета дупликатов, т.е. сколько дней всего в выборке) Средние параметры:
INSERT INTO $TABLE_REPORT ($SUMM_B, $SUMM_Z, $SUMM_U, $SUMM_KK) SELECT AVG($COL_B, $COL_Z, $COL_U, $COL_KK) FROM ...
Счетчик дней:
INSERT INTO $TABLE_REPORT($SUMM_DAY) SELECT COUNT(DISTINCT $DATE_D) FROM ...
Все параметры из первой выборки.