|
|
|
Битовая логическая операция над агрегацией.
|
|||
|---|---|---|---|
|
#18+
ASA9.Нужно в запросе с агрегацией по полю результатом чтобы была логичемкая битовая операция над значениями. Т.Е что-то типа: select field1, bitwise_OR(field1) from table group by field1 Красивого решения я пока не нашел, очень не хочится городить курсор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 12:59 |
|
||
|
Битовая логическая операция над агрегацией.
|
|||
|---|---|---|---|
|
#18+
Мне показалось что имелось ввиду: select field1, bitwise_OR( field2 ) from table group by field1 Кроме этого ничего в голову не приходит: select field1,max(field2&&1)+max(field2&&2)+max(field2&&4)+.. from table group by field1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 22:23 |
|
||
|
Битовая логическая операция над агрегацией.
|
|||
|---|---|---|---|
|
#18+
2Iller: Насчет field2 - все верно. Ваше решение, действительно выход, в любом случае, это гораздо лучше чем курсор, который я собрался городить. 2ASCRUS: Есть предложение, которе можно вынести на официальный форум по ASA. Мне кажется, что возможность применения к агрегациям битовых операций вполне полезный функционал. В моем случае, битовая операция над агрегацией мне понадобилась, т.к. битовое поле (в БД, которую я не разрабатывал) определяло права доступа. Соответсвенно агрегация по нему - определяла результирующее право. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 10:44 |
|
||
|
Битовая логическая операция над агрегацией.
|
|||
|---|---|---|---|
|
#18+
авторбитовое поле (в БД, которую я не разрабатывал) определяло права доступа. Соответсвенно агрегация по нему - определяла результирующее право может вам это и не поможет, но подобную проблему я решил следующим способом. в процессе определения прав пользователя формируется временная таблица с правами по объектам create table #perm( object_id integer not null, flags integer not null, ); таблица может содержать несколько строк с одим object_id и разными правами - flags следующий оператор суммирует права по object_id update #perm as p set p.flags = p.flags|d.flags from #perm as p,#perm as d where d.object_id = p.object_id; теперь все строки с одним object_id имеют одинаковое значение flags равное сумме прав ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2004, 19:10 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=32828301&tid=2014005]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 266ms |

| 0 / 0 |

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