php - MySQL Query Unexpected Results -
i trying run mysql query return information highest score group of games. table setup following columns in it: scoreid, score, gameid, playerid, date. when run following sql command gives me proper high score returns first submitted playerid , date. doing wrong here?
select date, max(score) score, scoreid, playerid scores group gameid
you grouping gameid, returning non-aggregated columns (date
, scoreid
, playerid
). mysql allows select non-aggregated columns in group query, value of columns undetermined (it return first encountered value, not documented , can't rely on it). score
aggregated (you using max()
aggregation function) value correct.
if want return rows have maximum score should use query this:
select date, score, scoreid, playerid scores score = (select max(score) scores)
or if want return rows have maximum score every gameid, this:
select date, score, scoreid, playerid scores (gameid, score) in (select gameid, max(score) scores group gameid)
please see fiddle here.
Comments
Post a Comment