Size: a a a

2020 April 16

MO

Madiyar Orazaly in Laravel Pro
Madiyar Orazaly
как вариант посчитать у скольких юзеров рейтинг выше
чем этот вариант не подходит?
источник

M

Mark in Laravel Pro
Madiyar Orazaly
чем этот вариант не подходит?
И что я получу?) А что делать с теми у кого меньше? Это не совсем то, что нужно
источник

EG

Egor Gruzdev in Laravel Pro
Madiyar Orazaly
чем этот вариант не подходит?
select * from (SELECT @i:=@i+1 position, user.*
   FROM user, (SELECT @i:=0) X
   ORDER BY count desc) as t where t.position = 2;
источник

M

Mark in Laravel Pro
Egor Gruzdev
select * from (SELECT @i:=@i+1 position, user.*
   FROM user, (SELECT @i:=0) X
   ORDER BY count desc) as t where t.position = 2;
Я так понимаю тут только сырым запросом можно сделать?
источник

EG

Egor Gruzdev in Laravel Pro
да
источник

MO

Madiyar Orazaly in Laravel Pro
Mark
И что я получу?) А что делать с теми у кого меньше? Это не совсем то, что нужно
ну как бы ты получишь позицию одного юзера по рейтингу) Или я что-то неправильно понял
источник

M

Mark in Laravel Pro
Madiyar Orazaly
ну как бы ты получишь позицию одного юзера по рейтингу) Или я что-то неправильно понял
Я получу не позицию юзера, а получу количество юзеров у кого больше рейтинг , не более)
источник

MO

Madiyar Orazaly in Laravel Pro
так это и есть позиция для одного участника)
источник

M

Mark in Laravel Pro
Madiyar Orazaly
так это и есть позиция для одного участника)
эм..
источник

MO

Madiyar Orazaly in Laravel Pro
если ты 6-ой = у юзера 5 человек с большим рейтингом
источник

MO

Madiyar Orazaly in Laravel Pro
поправьте если не прав или чего-то не понимаю
источник

EG

Egor Gruzdev in Laravel Pro
Madiyar Orazaly
поправьте если не прав или чего-то не понимаю
да будет работаь, только нельзя будет учесть с одинаковым рейтингом, т.е.
1 - 10
2 - 3
3 - 3
4 - 3
5 - 3
6 - 2
—-
получается что игроки на 2,3,4,5 месте если делать выборку (count >= $count) будут всегда на 5 месте
источник

MO

Madiyar Orazaly in Laravel Pro
ну эт тоже можно учесть)
источник

EG

Egor Gruzdev in Laravel Pro
лучше все таки завести поле position или делать raw запрос что я взял из статьи
источник

MO

Madiyar Orazaly in Laravel Pro
+++
источник

EG

Egor Gruzdev in Laravel Pro
я не думаю что требуется как на бирже долесекундный рейтинг, можно и 1 раз в минуту пересчитывать если измения были зафиксированы
источник

M

Mark in Laravel Pro
Egor Gruzdev
select * from (SELECT @i:=@i+1 position, user.*
   FROM user, (SELECT @i:=0) X
   ORDER BY count desc) as t where t.position = 2;
Чёт выдает прост позицию 2.0 у всех
источник

M

Mark in Laravel Pro
Mark
Чёт выдает прост позицию 2.0 у всех
Ошибочка, находит пользователя , который на второй позиции, точнее вот так
источник

M

Mark in Laravel Pro
Но не конкретно того, что мне нужен..
источник

FL

First Last in Laravel Pro
Mark
К примеру если просто вывести таблицу, то тут всё просто orderBy('count', 'desc') и как бы понятно. А вот если нужно получить позицию только 1 юзера?
А отсортировать и взять первого юзера, не?
источник