SQLite Android получают разные значения - PullRequest
1 голос
/ 11 февраля 2012

У меня есть база данных SQLite для моих уровней в игре с данными из Name, Campaign, Number, Score. При создании моего LevelList (ListView с пользовательскими представлениями) я хочу выбрать кампанию из списка, где рядом с ним можно увидеть рекорд, который получается путем добавления всех оценок уровней этой кампании в базу данных.

Каждый уровень в базе данных имеет поле кампании, частью которого он является. Но чтобы составить список кампаний, я хочу получать только отдельные (уникальные) кампании. Есть ли хороший способ получить их из базы данных?
Какой лучший способ получить их, а также получить общий балл?

часть базы данных и как я собираюсь сделать мой просмотрщик списка уровней:
enter image description here

1 Ответ

5 голосов
/ 11 февраля 2012
select * from gdata

 campain        num     name       file       score     player    
 -------------  ------  ---------  ---------  --------  --------- 
 Campain One    1       Level One  test1.xml  1221      john      
 Campain One    1       Level Two  test1.xml  122       john      
 Campain One    1       Level Two  test1.xml  122       dereck    
 Campain One    1       Level Two  test1.xml  122       jon       
 Campain Two    1       Level Two  test1.xml  122       jon       
 Campain Two    1       Level Two  test1.xml  122       jon       
 Campain Two    1       Level Two  test2.xml  122       jon       
 Campain Three  1       Level Two  test2.xml  1122      jon       
 Campain Three  1       Level Two  test2.xml  1122      jon       
 Campain Three  1       Level Two  test2.xml  1122      derekk  

select 'All' as campain ,'All'as player,sum(score) score from gdata
union
select campain,player,sum(score) as score from gdata group by campain,player

 campain        player     score    
 -------------  ---------  -------- 
 All            All        5319     
 Campain One    dereck     122      
 Campain One    john       1343     
 Campain One    jon        122      
 Campain Three  derekk     1122     
 Campain Three  jon        2244     
 Campain Two    jon        366      

select campain,sum(score) as score from gdata group by campain

 campain        score    
 -------------  -------- 
 Campain One    1587     
 Campain Three  3366     
 Campain Two    366   

select campain,player,max(score) from (
select campain,player,sum(score) as score from gdata 
group by campain,player order by score desc
) as b
group by campain  

 campain        player     score
 -------------  ---------  ------------- 
 Campain One    john       1343          
 Campain Three  jon        2244          
 Campain Two    jon        366   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...