【发布时间】:2012-02-02 15:34:52
【问题描述】:
)
我正在做一个 SQL 查询来显示每个用户的几个用户分数的高分列表,这也应该给出特定用户达到的平均星数,以及达到的 MAX 级别,我也想进行计算用户在游戏中花费的总时间的总和,每个级别的所有时间..
我有以下问题:
1 : 我的 SQL 查询没有给每个用户一行。
2 : ginving 的总和不是每个用户,而是所有用户的总和。
3 : 平均 STARS 不以小数显示。
4 : 我无法获得“score.time_spent”来计算特定用户一直在玩的所有时间的总和
我目前的 SQL 查询如下所示:
SELECT DISTINCT
game_users.username AS 'User Name',
'Level Reached' = (SELECT DISTINCT MAX(score.game_level) FROM score
WHERE score.game_users_id IN
(SELECT game_users_id FROM game_users
WHERE game_users.id = score.game_users_id)),
score.time_spent AS 'Total Time Spent',
'Stars' = (SELECT DISTINCT AVG(score.stars) FROM score
WHERE score.game_users_id IN
(SELECT game_users_id FROM game_users
WHERE game_users.id = score.game_users_id)),
'High Score' = (SELECT DISTINCT SUM(score.game_level_score) FROM score
WHERE score.game_users_id IN
(SELECT game_users_id FROM game_users
WHERE game_users.id = score.game_users_id)),
game_users.current_state AS 'Online State'
FROM
game_users
INNER JOIN score ON game_users.id = score.game_users_id
GROUP BY
game_users.id,
game_users.username,
score.game_level_score,
score.game_level,
score.time_spent,
score.stars,
game_users.current_state
GO
“game_users”表如下所示:
id int Unchecked
firstname varchar(100) Checked
lastname varchar(100) Checked
email varchar(100) Checked
username varchar(50) Checked
usr_pass varchar(50) Checked
current_state int Checked
“分数”表如下所示:
id int Unchecked
game_users_id int Unchecked
game_level varchar(4) Checked
game_level_score numeric(18, 0) Checked
stars int Checked
time_spent time(7) Checked
有人可以帮我解决这个问题吗? :-)
最好的问候
斯蒂格 :-)
【问题讨论】: