MySQL, Доберитесь, пользователи занимают место

Поскольку join() метод находится в строковом классе вместо класса списка?

я соглашаюсь, что это выглядит забавным.

См. http://www.faqs.org/docs/diveintopython/odbchelper_join.html :

Исторический очерк. , Когда я сначала изучил Python, я ожидал, что соединение будет методом списка, который возьмет разделитель в качестве аргумента. Много людей чувствует то же самое, и there’s история метода соединения. До Python 1.6 строковые didn’t имеют все эти полезные методы. Был отдельный строковый модуль, который содержал все строковые функции; каждая функция взяла строку в качестве своего первого аргумента. Функции считали достаточно важными для помещения на сами строки, которые имели смысл для функций как более низкий, верхнее, и разделяли. Но многие жесткие Python программисты возразили против нового метода соединения, утверждая, что это должен быть метод списка вместо этого, или что это, перемещение shouldn’t вообще, но просто остается частью старого строкового модуля (который все еще имеет много полезного материала в нем). Я использую новый метод соединения исключительно, но Вы будете видеть код, написанный так или иначе, и если он действительно беспокоит Вас, можно использовать старую функцию string.join вместо этого.

---Mark Pilgrim, Погружение в Python

10
задан RailsSon 18 August 2009 в 13:26
поделиться

1 ответ

SELECT  uo.*, 
        (
        SELECT  COUNT(*)
        FROM    users ui
        WHERE   (ui.points, ui.id) >= (uo.points, uo.id)
        ) AS rank
FROM    users uo
WHERE   id = @id

Плотный рейтинг:

SELECT  uo.*, 
        (
        SELECT  COUNT(DISTINCT ui.points)
        FROM    users ui
        WHERE   ui.points >= uo.points
        ) AS rank
FROM    users uo
WHERE   id = @id
18
ответ дан 3 December 2019 в 19:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: