|
|
|
Помогите написать красивый запрос
|
|||
|---|---|---|---|
|
#18+
Сталкнулся вот с такой задачкой и нет нормальных идей по ее реализации.В упрощенном виде это выглядит так. Имеется простая табличка с полями номер, собственно данные и порядок в группе соответственно (id, data, npp) Необходимо пронумеровать данные в каждой группе. Вот пример на входе 1 a 0 2 a 0 3 a 0 4 b 0 5 b 0 6 c 0 7 c 0 8 c 0 на выходе 1 a 1 2 a 2 3 a 3 4 b 1 5 b 2 6 c 1 7 c 2 8 c 3 Лезет только в голову через циклы и динамические запросом, но может можно как то одним запросом это реализовать. Табличка не большая, так что быстродействие не важно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 17:08:04 |
|
||
|
Помогите написать красивый запрос
|
|||
|---|---|---|---|
|
#18+
select t1.id, t1.data, npp = (select count(t2.id) from table t2 where t2.id<=t1.id) from table t1 order by t1.id, t1.data ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 17:28:56 |
|
||
|
Помогите написать красивый запрос
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 17:29:00 |
|
||
|
Помогите написать красивый запрос
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 17:30:25 |
|
||
|
Помогите написать красивый запрос
|
|||
|---|---|---|---|
|
#18+
to 3JIA9I CyKA, Alexes,Александр Азаркович SUPER ! Снимаю шляпу ! :) Я искренне думал, что нельзя без цикла .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 17:32:20 |
|
||
|
Помогите написать красивый запрос
|
|||
|---|---|---|---|
|
#18+
Sorry. Хреново вопрос прочитал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 17:32:30 |
|
||
|
Помогите написать красивый запрос
|
|||
|---|---|---|---|
|
#18+
2Alexes: прям слово в слово :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 17:32:45 |
|
||
|
Помогите написать красивый запрос
|
|||
|---|---|---|---|
|
#18+
to Alexes,Александр Азаркович - вы как за одним столом сидели. Сила. Это ж другое дело, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 17:40:39 |
|
||
|
Помогите написать красивый запрос
|
|||
|---|---|---|---|
|
#18+
Например так: declare @i int declare @last char(1) update t1 set @i=npp=case when @last=data then @i+1 else 1 end, @last=data ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 17:41:32 |
|
||
|
Помогите написать красивый запрос
|
|||
|---|---|---|---|
|
#18+
Есть вариант с созданием временной таблицы Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 17:44:20 |
|
||
|
Помогите написать красивый запрос
|
|||
|---|---|---|---|
|
#18+
to u001 а вот таккая фишка не пройдет, т.к. если данные будут не упорядочены, то нумерация будет неправильной ... пример таблицы Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 17:49:25 |
|
||
|
Помогите написать красивый запрос
|
|||
|---|---|---|---|
|
#18+
Можно добавить Order by, или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 17:50:46 |
|
||
|
Помогите написать красивый запрос
|
|||
|---|---|---|---|
|
#18+
to Тимур с вашим вариантом пронумеруется вся таблица, а нужно ж по группам re. order by добавить можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 18:00:57 |
|
||
|
Помогите написать красивый запрос
|
|||
|---|---|---|---|
|
#18+
To Sanek Вариант u001 будет работать правильно при условии существования кластерного индекса на поля, нужные для сортировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 18:08:49 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32073579&tid=1818428]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 363ms |

| 0 / 0 |
