#sql #sorting #labeling
Вопрос:
У меня есть набор кластеров в SQL, связанных со средним значением, подобным этому:
Скопление | Ценность |
---|---|
Кластер 5 | 10 |
Кластер 3 | 8 |
Кластер 4 | 4 |
Кластер 2 | 2 |
Кластер 1 | 1 |
Название кластера не имеет никакого отношения к его значению, и мне нужно пометить их в соответствии с ним следующим образом:
Скопление | Ценность | Метка кластера |
---|---|---|
Кластер 5 | 10 | 1 |
Кластер 3 | 8 | 2 |
Кластер 4 | 4 | 3 |
Кластер 2 | 2 | 4 |
Кластер 1 | 1 | 5 |
Количество кластеров не ограничено; оно должно быть больше 1 и меньше 6. (1 < # кластеров
Спасибо
Комментарии:
1. Какие СУБД вы используете?
2. » меньше 5 «, и все равно у вас есть метка кластера 5… Что ожидается, если их будет меньше 2 или больше 5?
3. SQLite, но я могу использовать MySQL в любой версии
4. Существует предыдущая проверка количества кластеров; на данный момент невозможно иметь более 5 или менее 2 кластеров.
Ответ №1:
select * , row_number() over (order by value desc) Clusterlabel
from table