Помогите, написав SQL-скрипт, который будет сортировать данные.
Ключевой трудностью - нужно создать дополнительный столбец, по которому будет происходить сортировка.
Я попытался описать ситуацию настолько подробно, насколько это возможно.
SQL-запрос с сортировкой
Давайте начнем. Существует таблица следующего вида:
Мы получим идентификатор пользователя и возвращаем данные, только те, у кого его нет, но есть и другие.
Следующий шаг: сортировать по искусственно созданной колонке.
Далее я сделаю шаг за шагом.
Итак, что я могу сказать об искусственном столбе:
В этой колонке будет содержаться разница между оценками. Итак, чтобы получить его - вам нужно сначала выполнить ряд действий:
Согласно информации, которая подобна заданию пользователю и другому пользователю, чтобы рассчитать разницу в оценке и получить средний балл.
Следующие две фотографии показывают одни и те же данные, а затем сам расчет, мне кажется - это довольно просто.
Расчет этой колонки заключается в следующем:
User with 2nd id:
1: 5 - 1 = 4;
2: 2 - 9 = -7;
3: next data what is in user 1 - absent in user 2, and we ease pass it;
User with 3rd id:
1: 3 - 1 = 2;
2: the next data's is absent in user with 3rt id;
3: 8 – 9 = -1;
4: 6 – 2 = 4;
5: passed;
End in the end:
User_2 will have new mark = -1.5
User_3 will have new mark = 1.66666
И в конце концов, мне нужно, чтобы вернуть таблицу:
Но это еще не все. Часто данные будут дублироваться, и я бы хотел получить средние результаты по полученным данным. Пожалуйста, посмотрите на следующий пример:
И это конец. Мне действительно нужна ваша помощь, эксперты. Я сам преподаю код sql, но для меня это очень сложно.
Если бы идея сделать скрипт следующим образом:
SELECT d.data, (d.mark + myCount(d.user, 1)) newOrder
FROM info d
WHERE -- data from user_1 NOT equal data from other users
ORDER BY newOrder;
Но сценарий будет выполняться много времени, потому что она использует свою собственную функцию, которая может сделать с запросом к каждому пользователю, а не запись. Надеюсь, кто-то сможет справиться с этой задачей.
Подобный подход к моим мыслям, но я делал это с принципом самосоединения. – DRapp