есть таблица Код (Text): |judge_id | photo_id| rating| |6|38|2 |6|41|2 |6|44|4 |10|38|5 |10|44|0 |11|42|0 |11|41|3 |11|42|4 |15|38|2 Нужно выбрать из неё photo_id и их рейтинг (среднее значение оценок выставленное всеми судьями, при этом если в raiting 0, то этого судью учитывать не нужно). Желательно ещё отсортировать всё это в порядке убывания рейтинга.
[sql]SELECT `photo_id`, SUM(`rating`)/COUNT(`judge_id`) as stat FROM `tst3` WHERE `rating`!=0 GROUP BY `photo_id` ORDER BY stat DESC[/sql] Или еще лучше (с подачки Devzirom): [sql]SELECT `photo_id`, AVG(`rating`) as stat FROM `tst3` WHERE `rating`!=0 GROUP BY `photo_id` ORDER BY stat DESC[/sql] Код (Text): photo_id stat 44 4.0000 42 4.0000 38 3.0000 41 2.5000 P.S. [sql]id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE tst3 ALL NULL NULL NULL NULL 9 Using where; Using temporary; Using filesort[/sql]