Мне необходим ваш правильно составленный sql-запрос! Есть таблица pictures и ratings. Поля таблицы ratings ---> id, picture_id, rating, user_who_made_rating. Давайте!
pictures содержит поля --> id,picture_file_name,picture_content_type Нужно отобразить топ 100 картинок с наиболее высоким рейтингом.
SELECT * FROM pictures INNER JOIN ratings ON ratings.picture_id=pictures.id ORDER BY SUM(ratings.rating)/COUNT(ratings.rating) выводит одну единственную картинку, в то время как в таблице ratings, рейтинги принадлежат 3 различным фотографиям
да, в таблице рейтинга, там же у тебя записей много ? или у тебя для каждой картинки одна запись? если так то не надо группировать
еще можешь попробовать сделать в вложенном селекте, стачало выполни в одном все арифметические действия и получи пока все записи, а потом в другом выбери их в отсортированный варианте , просто я сам в сложных запросах не сильно разбираюсь, могу только советы дать
у мну несколько записей в таблице рейтингов, т.е для какой-то картинки таблицы pictures есть к примеру 3 записи в таблице ratings
думаю нужен вложенный селекс в внутренно группируешь по по ид куртинки и суммируешь рейтинг а во внешнем уже выводишь в нужнем порядке, я не знаю как правильно синтаксический это написать, а то бы написал
Поля таблицы ratings ---> id, picture_id, rating, user_who_made_rating. pictures содержит поля --> id,picture_file_name,picture_content_type SELECT TOP 100 p.picture_file_name FROM Pictures p JOIN Ratings r ON p.id = r.picture_id ORDER BY r.rating DESC; вернет тебе 100 самых "рейтинговых" картинок (а именно путей к ним) SELECT TOP 100 * FROM Pictures p JOIN Ratings r ON p.id = r.picture_id ORDER BY r.rating DESC; а вот так вернутся все данные из этих двух таблиц еще раз перечиталд ветку. так и не понял, зачем тебе кака-ято арифметика впринципе? у тебя есть данные о том, какой рейтинг у картинки (ratings.rating). если rating у одной картинки больше, чем у другой, то она "круче"... или у тебя по другому реализован подсчет рейтинга?