要计算总和并按月份分组,可以使用SQLite的GROUP BY子句和SUM函数来实现。下面是一个示例代码:
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class MainActivity extends AppCompatActivity {
private SQLiteDatabase database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 打开数据库
database = openOrCreateDatabase("your_database_name", MODE_PRIVATE, null);
// 创建表格
database.execSQL("CREATE TABLE IF NOT EXISTS your_table_name (date TEXT, amount REAL)");
// 插入示例数据
database.execSQL("INSERT INTO your_table_name (date, amount) VALUES ('2022-01-01', 100.0)");
database.execSQL("INSERT INTO your_table_name (date, amount) VALUES ('2022-01-02', 200.0)");
database.execSQL("INSERT INTO your_table_name (date, amount) VALUES ('2022-02-01', 300.0)");
database.execSQL("INSERT INTO your_table_name (date, amount) VALUES ('2022-02-02', 400.0)");
// 查询并计算总和并按月份分组
Cursor cursor = database.rawQuery("SELECT strftime('%Y-%m', date) AS month, SUM(amount) AS total FROM your_table_name GROUP BY month", null);
// 遍历结果
if (cursor.moveToFirst()) {
do {
String month = cursor.getString(cursor.getColumnIndex("month"));
double total = cursor.getDouble(cursor.getColumnIndex("total"));
Log.d("Result", "Month: " + month + ", Total: " + total);
} while (cursor.moveToNext());
}
// 关闭游标和数据库
cursor.close();
database.close();
}
}
上述代码创建了一个名为your_table_name
的表格,包含date
和amount
两个列。示例代码插入了四条数据,其中两条属于1月份,两条属于2月份。
然后使用原生的SQLite查询语句SELECT strftime('%Y-%m', date) AS month, SUM(amount) AS total FROM your_table_name GROUP BY month
来计算总和并按月份分组。strftime('%Y-%m', date)
函数用于将日期格式化为YYYY-MM
的形式。
最后,遍历查询结果并打印每月的总和。
记得在AndroidManifest.xml中添加对应的权限:
这样就可以根据需要计算总和并按月份分组了。
上一篇:Android:计算手机方向