Я хочу использовать SQL для получения 5 "лучших" профилей. Проблема в том, что я не хочу, чтобы рейтинг основывался только на оценках.SQL-сортировка по двум столбцам
Скажите, что есть профиль с оценкой 8.1, но с 5 отзывами Я хочу, чтобы профиль с оценками в 7,9 и 30 баллов оценивался выше.
Как я могу достичь этого, если оценка не более 0,3 ниже другой, но с оценкой выше 30% выше, чем другая?
Это мой запрос прямо сейчас: (среднее = оценка, обзор = число обзоров)
SELECT name,reviews,average
FROM profiles
WHERE average >= 7
AND reviews >= 50
ORDER BY average DESC, reviews DESC
LIMIT 5
Я бы подумал, что вы можете создать представление с вычисленным столбцом, например: 'Adjusted_Grade = Number_of_Reviews/10.0 + Raw_Grade' –
Можете ли вы написать функцию ранжирования, которая принимает одну строку и генерирует значение доброты, которое правильно оценивает? Я не подозреваю; это, скорее всего, требует двух строк, а не одной строки. Тем не менее, это будет сложно. Кстати, оба ваших профили примера отклоняются условием фильтра в запросе. –