Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 вопрос по группировке строк  [new]
Coffin_Joe
Member

Откуда:
Сообщений: 8
Здравствуйте!
Помогите пожалуйста с запросом.
есть исходная таблица:
Картинка с другого сайта.
в ходе запроса, необходимо получить такую таблицу:
Картинка с другого сайта.

то есть смысл в том, чтобы сгруппировать строки с dd = 1, не прерванных строкой/строками с dd = 0 и в полученной группировках, выбрать раннюю дату - записать в date, поздняя дата - в новый столбец date2.

запись дат по 2м столбцам, наверное можно осуществить разворотом таблицы, а вот с группировкой вообще никаких мыслей нет.
Подскажите, пожалуйста, в каком направлении мне двигаться?
Заранее благодарен!
1 сен 13, 20:55    [14781564]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по группировке строк  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
WITH CTE AS(N=ROW_NUMBER()OVER(PARTITION BY id ORDER BY [date])-ROW_NUMBER()OVER(PARTITION BY id,dd ORDER BY [date]),* FROM T)
SELECT id,[date]=MIN([date]),[date2]=MAX([date]),dd
FROM CTE
WHERE dd=1
GROUP BY N,id,dd;
Не проверял!
Ибо влом писать CREATE TABLE и INSERT с каких-то картинок.
Трудно было нормально оформить?
1 сен 13, 22:14    [14781735]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по группировке строк  [new]
Coffin_Joe
Member

Откуда:
Сообщений: 8
iap, извини, никогда не писал здесь, думал что так удобней будет) а за решение спасибо)
2 сен 13, 06:45    [14782328]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по группировке строк  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
Coffin_Joe
думал что так удобней будет
Часто лучше читать чем думать )
Рекомендации по оформлению сообщений в форуме
2 сен 13, 07:09    [14782341]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по группировке строк  [new]
aleks2
Guest
iap
WITH CTE AS(N=ROW_NUMBER()OVER(PARTITION BY id ORDER BY [date])-ROW_NUMBER()OVER(PARTITION BY id,dd ORDER BY [date]),* FROM T)
SELECT id,[date]=MIN([date]),[date2]=MAX([date]),dd
FROM CTE
WHERE dd=1
GROUP BY N,id,dd;


Апять саботажником подрабатываешь?
2 сен 13, 09:18    [14782573]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по группировке строк  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
aleks2
iap
WITH CTE AS(N=ROW_NUMBER()OVER(PARTITION BY id ORDER BY [date])-ROW_NUMBER()OVER(PARTITION BY id,dd ORDER BY [date]),* FROM T)
SELECT id,[date]=MIN([date]),[date2]=MAX([date]),dd
FROM CTE
WHERE dd=1
GROUP BY N,id,dd;



Апять саботажником подрабатываешь?
Пачиму? :)
2 сен 13, 09:32    [14782594]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по группировке строк  [new]
aleks2
Guest
iap
aleks2
пропущено...


Апять саботажником подрабатываешь?
Пачиму? :)


Патамушто это самое тормозное из решений.
2 сен 13, 09:46    [14782635]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по группировке строк  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
aleks2
iap
пропущено...
Пачиму? :)


Патамушто это самое тормозное из решений.
Так добавьте сюда самое быстрое.
2 сен 13, 09:49    [14782641]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по группировке строк  [new]
Coffin_Joe
Member

Откуда:
Сообщений: 8
iap, спасибо, все отлично работает)
Ruuu, спасибо, буду штудировать)
3 сен 13, 06:59    [14787330]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить