Вы отправляете JSON, как это
$.ajax(url, {
data : JSON.stringify(myJSObject),
contentType : 'application/json',
type : 'POST',
...
, если вы передаете объект как settings.data jQuery будет преобразовывать его в параметры запроса и по умолчанию отправлять с помощью приложения типа данных / x-www-form- urlencoded; charset = UTF-8, возможно, не то, что вы хотите
LAG
получает ваш половину пути туда, но не весь путь. Вы можете использовать LAG
, чтобы проверить значение последней строки и создать (что я назвал) переключатель. Затем вы можете использовать оконную функцию SUM
с предложением ROWs BETWEEN
для получения значения для tag
:
WITH CTE AS(
SELECT num,
code,
event_date,
CASE WHEN code = LAG(code) OVER (PARTITION BY num ORDER BY event_date) THEN 0 ELSE 1 END AS Switch
FROM #input)
SELECT num,
code,
event_date,
SUM(Switch) OVER (PARTITION BY num ORDER BY event_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS tag
FROM CTE;