我正在编写一个 Android 应用程序,用于存储锻炼日期和燃烧的卡路里。下面是我的表中数据的示例: 这是返回:
SELECT month, day, calories FROM workouts ORDER BY year ASC, month ASC, day ASC LIMIT 12;
(month | day | calories)
3|2|714
3|3|945
3|4|630
3|10|446
3|16|396
3|20|255
3|22|108
3|23|112
3|23|169
3|23|2160
我为上面写的代码是:
public Cursor getLastTwelveDays(){
Cursor c;
String[] s = {KEY_MONTH, KEY_DAY, KEY_CALORIES};
String order = KEY_YEAR + " ASC, " + KEY_MONTH + " ASC, " + KEY_DAY + " ASC LIMIT 12" ;
c = db.query(WORKOUT_TABLE, s, null, null, null, null, order);
return c;
}
我想将具有相同日期和月份的行组合成一行,如下所示:
3|2|714
3|3|945
3|4|630
3|10|446
3|16|396
3|20|255
3|22|108
3|23|2441 (112 + 169 + 2160)
另外,如果能配合android的查询功能使用就更好了。
提前致谢。
最佳答案
您正在寻找的是 group by 子句。使用 SUM() 方法获取每个日期的总卡路里。我认为 group by 子句应该放在 ORDER BY 子句之前。
SELECT month, day, SUM(calories) FROM workouts GROUP BY month, day
关于android - sqlite 求和来自同一日期的值并返回 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5767391/