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;
Обновление: Начиная с jQuery UI 1.8, рабочее решение (как упомянуто во втором комментарии) заключается в использовать:
width: 'auto'
Использовать параметр autoResize: true. Я проиллюстрирую:
<div id="whatup">
<div id="inside">Hi there.</div>
</div>
<script>
$('#whatup').dialog(
"resize", "auto"
);
$('#whatup').dialog();
setTimeout(function() {
$('#inside').append("Hello!<br>");
setTimeout(arguments.callee, 1000);
}, 1000);
</script>
Вот рабочий пример: http://jsbin.com/ubowa
Ответ установить свойство
autoResize:true
при создании диалога. Для того, чтобы это работало, вы не можете установить любую высоту для диалога. Так что если вы установите фиксированную высоту в пикселях для диалога в его методе создателя или с помощью любого стиля, свойство autoResize не будет работать.