sqlite汇总值来自相同日期并返回1行

rst*_*kes 2 sql sqlite android

我正在编写一个存储锻炼日期和燃烧卡路里的Android应用程序.下面是我表中数据的示例:这是由以下内容返回的:

SELECT month, day, calories FROM workouts ORDER BY year ASC, month ASC, day ASC LIMIT 12;
Run Code Online (Sandbox Code Playgroud)
(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
Run Code Online (Sandbox Code Playgroud)

我为上面写的代码是:

  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;
}
Run Code Online (Sandbox Code Playgroud)

我想将具有相同日期和月份的行组合成一行,如下所示:

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)    
Run Code Online (Sandbox Code Playgroud)

此外,如果它易于使用android的查询功能将是很好的.

提前致谢.

zzz*_*zzz 8

你要找的是group by子句.使用SUM()方法获取每个日期的总卡路里.我相信group by子句应该在ORDER BY子句之前.

SELECT月,日,SUM(卡路里)FROM锻炼GROUP BY月,日