|
|
|
Как перенумеровать записи в группе?
|
|||
|---|---|---|---|
|
#18+
ASE 12.0 В запросе нужно перенумеровать записи внутри каждогой группы с одинаковым значением полей A, B начиная нумерацию каждой группы с 1, желательно в заданном порядке (на пример, в сортировке по полям A, B, C, D ). Т.е. получить такой результат (NN): А В ... NN 1 1 ... 1 1 1 ... 2 1 1 ... 3 1 2 ... 1 1 3 ... 1 1 3 ... 2 Подскажите как это сделать или хотябы ткните пальцем в каком направлении копать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 05:35 |
|
||
|
Как перенумеровать записи в группе?
|
|||
|---|---|---|---|
|
#18+
казалось бы так (для ASA9): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. но у меня сортирует корректно только первую группу. Очевидно есть какие-то ньюансы с update и/или уровнями изоляции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 15:26 |
|
||
|
Как перенумеровать записи в группе?
|
|||
|---|---|---|---|
|
#18+
кстати, почему только первую группу? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 15:34 |
|
||
|
Как перенумеровать записи в группе?
|
|||
|---|---|---|---|
|
#18+
В ASE 12.0 так не прокатывает - в подселекте участвуют значения данных до начала транзакции - т.е max(NN) = 0 для всех записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 09:38 |
|
||
|
Как перенумеровать записи в группе?
|
|||
|---|---|---|---|
|
#18+
Для ASA 9.0.2 спокойно и очень быстро прокатит вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Для более старых версий ASA, а так же версий ASE предлагаю копать в сторону использования промежуточной переменной в UPDATE, хотя тогда без курсора по группам "A" и "B" не обойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 11:07 |
|
||
|
Как перенумеровать записи в группе?
|
|||
|---|---|---|---|
|
#18+
ASE не знает что такое ROW_NUMBER () OVER(). В DB2 тоже функция такая есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 12:32 |
|
||
|
Как перенумеровать записи в группе?
|
|||
|---|---|---|---|
|
#18+
golsaВ DB2 тоже функция такая есть. Оттуда все плавно и перетекает в ASA (OLAP, CTE, WITH RECURSIVE, ...). Не удивлюсь, если окажется, что у них и в оптимизаторох много всего общего, раз уж эти 2 СУБД обе пытаются развивать стратегию с нулевым (минимальным) администрированием и интеллектуальные оптимизаторы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 12:36 |
|
||
|
Как перенумеровать записи в группе?
|
|||
|---|---|---|---|
|
#18+
Где-то так. Добавить нужную группировку если надо. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 13:43 |
|
||
|
Как перенумеровать записи в группе?
|
|||
|---|---|---|---|
|
#18+
to Crip Спасибо за идею, так по крайней мере считает, а условиями можно задать группировку и, чуть напрягшись сортировку . Может кому еще понадобится: update testRecno set testRecno.nn = (select count(*) from dbo.testRecno s where s.a = testRecno.a and (s.b < testRecno.b or (s.b < testRecno.b and s.c <= testRecno.c ) группировка по A, сортировка в группе по B,C ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 14:18 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=110&tid=2013944]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 380ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...