#include "Querier.h"
#define BATTERY_USAGE_QUERY \
- "SELECT " BATTERY_APP_ID " AS " KEY_APP_ID ", ROUND(SUM(" BATTERY_AMOUNT ")/10000.0, 2) AS " KEY_TOTAL_AMOUNT \
+ "SELECT " BATTERY_APP_ID " AS " KEY_APP_ID ", ROUND(100.0 * SUM(" BATTERY_AMOUNT ") / " \
+ "(SELECT SUM(" BATTERY_AMOUNT ") FROM " BATTERY_USAGE_TABLE " WHERE " BATTERY_START_TIME " >= %d AND " BATTERY_END_TIME " <= %d)" \
+ ", 2) AS " KEY_TOTAL_AMOUNT \
" FROM " BATTERY_USAGE_TABLE " WHERE " BATTERY_START_TIME " >= %d AND " BATTERY_END_TIME " <= %d" \
" GROUP BY " KEY_APP_ID " ORDER BY " KEY_TOTAL_AMOUNT " DESC"
#define RECENT_BATTERY_USAGE_QUERY \
- "SELECT " BATTERY_APP_ID " AS " KEY_APP_ID ", ROUND(SUM(" BATTERY_AMOUNT ")/10000.0, 2) AS " KEY_TOTAL_AMOUNT \
+ "SELECT " BATTERY_APP_ID " AS " KEY_APP_ID ", ROUND(100.0 * SUM(" BATTERY_AMOUNT ") / " \
+ "(SELECT SUM(" BATTERY_AMOUNT ") FROM " BATTERY_USAGE_TABLE " WHERE " BATTERY_START_TIME " >= %d AND " BATTERY_END_TIME " <= %d)" \
+ ", 2) AS " KEY_TOTAL_AMOUNT \
", %d AS " KEY_USED_TIME \
" FROM " BATTERY_USAGE_TABLE " WHERE " BATTERY_START_TIME " >= %d AND " BATTERY_END_TIME " <= %d" \
" GROUP BY " KEY_APP_ID " ORDER BY " KEY_TOTAL_AMOUNT " DESC"
int BatteryStatsQuerier::query(int startTime, int endTime)
{
- char *sql = sqlite3_mprintf(BATTERY_USAGE_QUERY, startTime, endTime);
+ char *sql = sqlite3_mprintf(BATTERY_USAGE_QUERY, startTime, endTime, startTime, endTime);
int error = query(sql);
sqlite3_free(sql);
int BatteryStatsQuerier::query(int startTime, int endTime, int resultSize)
{
- char *sql = sqlite3_mprintf(BATTERY_USAGE_QUERY " LIMIT %d", startTime, endTime, resultSize);
+ char *sql = sqlite3_mprintf(BATTERY_USAGE_QUERY " LIMIT %d", startTime, endTime, startTime, endTime, resultSize);
int error = query(sql);
sqlite3_free(sql);
int BatteryStatsQuerier::queryRecent(int startTime, int endTime)
{
- char *sql = sqlite3_mprintf(RECENT_BATTERY_USAGE_QUERY, endTime - startTime, startTime, endTime);
+ char *sql = sqlite3_mprintf(RECENT_BATTERY_USAGE_QUERY, startTime, endTime, endTime - startTime, startTime, endTime);
int error = query(sql);
sqlite3_free(sql);
int BatteryStatsQuerier::queryRecent(int startTime, int endTime, int resultSize)
{
- char *sql = sqlite3_mprintf(RECENT_BATTERY_USAGE_QUERY " LIMIT %d", endTime - startTime, startTime, endTime, resultSize);
+ char *sql = sqlite3_mprintf(RECENT_BATTERY_USAGE_QUERY " LIMIT %d", startTime, endTime, endTime - startTime, startTime, endTime, resultSize);
int error = query(sql);
sqlite3_free(sql);