GoaMind
Новичок
Рейтинг, проблема с GROUP BY по пользователям
Есть такая табличка:[sql]CREATE TABLE `pictures_votes`(
`pid` bigint(20) unsigned NOT NULL default '0',
`uid` bigint(20) unsigned NOT NULL default '0',
`sum` int(11) NOT NULL default '0',
`num` int(11) NOT NULL default '0',
UNIQUE KEY `pid` (`pid`),
) [/sql]где pid - номер картинки, uid - пользователь, sum - сумма голосов, num - количество голосов
Рейтинг каждой картинки есть sum / num. Группировать надо по пользователю (uid) и получить pid соответствующий картинки с максимальным рейтингом для данного пользователя (uid).
Запрос: [sql]SELECT *, sum/num AS sn FROM `pictures_votes` GROUP BY uid ORDER BY sn DESC[/sql] не выдаёт pid соответствующий требованиям, как я понимаю он выдаёт случайный (первый) pid для каждого пользователя.
Я думаю это распространённая проблема c GROUP BY, но к сажелени на форуме ответа мне найти не удалось. Если я что-то пропустил извиняюсь. Прошу направить в правильном напровлении.
----------------------------------------
И вот ещё... целесообразно вычислять sum/num всё время или лучше сделать ещё один столбец и при апдейте просто записывать в него рейтинг?
Есть такая табличка:[sql]CREATE TABLE `pictures_votes`(
`pid` bigint(20) unsigned NOT NULL default '0',
`uid` bigint(20) unsigned NOT NULL default '0',
`sum` int(11) NOT NULL default '0',
`num` int(11) NOT NULL default '0',
UNIQUE KEY `pid` (`pid`),
) [/sql]где pid - номер картинки, uid - пользователь, sum - сумма голосов, num - количество голосов
Рейтинг каждой картинки есть sum / num. Группировать надо по пользователю (uid) и получить pid соответствующий картинки с максимальным рейтингом для данного пользователя (uid).
Запрос: [sql]SELECT *, sum/num AS sn FROM `pictures_votes` GROUP BY uid ORDER BY sn DESC[/sql] не выдаёт pid соответствующий требованиям, как я понимаю он выдаёт случайный (первый) pid для каждого пользователя.
Я думаю это распространённая проблема c GROUP BY, но к сажелени на форуме ответа мне найти не удалось. Если я что-то пропустил извиняюсь. Прошу направить в правильном напровлении.
----------------------------------------
И вот ещё... целесообразно вычислять sum/num всё время или лучше сделать ещё один столбец и при апдейте просто записывать в него рейтинг?