Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Измнение значения глобальной переменной внутри Select / 3 сообщений из 3, страница 1 из 1
19.09.2018, 13:01
    #39704873
Volandpro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Измнение значения глобальной переменной внутри Select
Всем привет!

Есть таблица с 3 колонками:

dateflag id1 0 .2 1 .3 0 .4 0 .5 0 .6 1 .7 0 .8 1 .

Необходимо задать id так, чтобы при каждом flag=1 id увеличивался на 1. Таким образом, таблица будет выглядеть так:

date flag id1 0 02 1 13 0 14 0 15 0 16 1 27 0 28 1 3

Думал это сделать через глобальную меременную, но, мне кажется, так нельзя)

Код: sql
1.
2.
3.
4.
5.
6.
select
date
,flag
,case when (flag=1) then set @var=@var+1 end
,@var as id
from table



Как это можно сделать пооптимальнее? Спасибо!
...
Рейтинг: 0 / 0
19.09.2018, 13:03
    #39704877
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Измнение значения глобальной переменной внутри Select
Volandpro,

SUM(Flag) OVER (ORDER BY date)

глобальные переменные? где у вас они?
...
Рейтинг: 0 / 0
19.09.2018, 13:41
    #39704931
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Измнение значения глобальной переменной внутри Select
Volandpro
Необходимо задать id так, чтобы при каждом flag=1 id увеличивался на 1. Таким образом, таблица будет выглядеть так:



Код: sql
1.
sum(case when (flag=1) then 1 else 0 end)  


для случая, если "синус угла флаг бывает больше 1"
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Измнение значения глобальной переменной внутри Select / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]