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

Откуда:
Сообщений: 42
Есть данные таблицы номер операции(nop), операция(op) , норма(nv),участок(uh)

05 отрезка 2.5 заготовительный
10 очистка 2,1 заготовительный
15 сверление 2,5 механический
20 слесарная 1,1 заготовительный

Мне нужно отсортировать по номеру операции и сгруппировать по участку , и взять максимальную операцию и сумму норм

должно получиться

10 4,6 заготовительный
15 2,5 механический
20 1,1 заготовительный
15 май 18, 15:12    [21410909]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Васелина,

почему 10 -> 4.6 ??
15 май 18, 15:15    [21410915]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
Васелина
Мне нужно отсортировать по номеру операции и сгруппировать по участку , и взять максимальную операцию и сумму норм


ну так возьмите.
group by, max,sum и order by вам в помощь

только сортировка в конце, а не в начале :)
15 май 18, 15:16    [21410916]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
iap,

потому что
Васелина
сгруппировать по участку(заготовительный) , и взять максимальную операцию(10) и сумму норм(4.6)
15 май 18, 15:17    [21410920]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Посетитель
iap,

потому что
Васелина
сгруппировать по участку(заготовительный) , и взять максимальную операцию(10) и сумму норм(4.6)

легче не стало
15 май 18, 15:21    [21410930]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20522
iap
почему 10 -> 4.6 ??
Она суммирует нормы для совпадающих (неизменных) участков с учётом сортировки. Как участок поменялся - новая группа, даже если этот участок ранее встречался.
15 май 18, 15:22    [21410933]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Посетитель
iap,

потому что
Васелина
сгруппировать по участку(заготовительный) , и взять максимальную операцию(10) и сумму норм(4.6)
Максимальная операция на заготовительном участке - не 20? А сумма не 5.7?
15 май 18, 15:22    [21410934]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
если нужна группировка не просто по названию участка, а по непрервыным диапазонам с учетом порядка, заданного nop, то надо будет дополнительно группировать по

row_number()over(order by nop)-row_number()over(partition by uh order by nop)
15 май 18, 15:23    [21410938]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
TaPaK
легче не стало

пожалуй, мой косяк.
в упор не видел, что в последней строке стоит тот же участок, хотел еще написать, что в примере такой строки не хватает :)
15 май 18, 15:25    [21410943]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Посетитель
TaPaK
легче не стало

пожалуй, мой косяк.
в упор не видел, что в последней строке стоит тот же участок, хотел еще написать, что в примере такой строки не хватает :)
Нет. Все косяки тут от формулировки задачи. Как будто русский не родной.
15 май 18, 15:27    [21410948]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
iap,

+ оффтоп
увы, постановка задач редко блещет четкостью и однозначностью. поэтому приходится развивать телепатические навыки. но они иногда дают сбои
15 май 18, 15:31    [21410962]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Посетитель
iap,

+ оффтоп
увы, постановка задач редко блещет четкостью и однозначностью. поэтому приходится развивать телепатические навыки. но они иногда дают сбои

хоть кто-то глаза нам открыл
15 май 18, 15:32    [21410968]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1467
Васелина,

with any_t (nop, op, nv, uh) as (
select * from (values 
(05, 'отрезка',  2.5, 'заготовительный'),
(10, 'очистка',  2.1, 'заготовительный'),
(15, 'сверление', 2.5,' механический'),
(20, 'слесарная', 1.1, 'заготовительный')
)v(a,b,c,d)
)
select max(nop) as x_nop
     , sum(nv) as total_nv
	 , uh
  from 
  (
     select * , row_number() over(order by nop) - row_number() over(partition by uh order by nop) as x_group_id
      from any_t
  ) any_v
 group by uh, x_group_id
 order by x_nop
15 май 18, 16:15    [21411074]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
Васелина
Member

Откуда:
Сообщений: 42
Щукина Анна и TaPaK Спасибо. Все получилось.
16 май 18, 09:01    [21412355]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
Васелина
TaPaK Спасибо.

Картинка с другого сайта.


вот это поворот
16 май 18, 09:13    [21412378]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Козловская группировка переформатировалась?
16 май 18, 09:23    [21412402]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
TaPaK
Козловская группировка переформатировалась?

пацталом
16 май 18, 09:48    [21412451]     Ответить | Цитировать Сообщить модератору
 Re: Как сгруппировать в зависимости от сортировки  [new]
Васелина
Member

Откуда:
Сообщений: 42
Посетитель, спасибо. Промахнулась.)
16 май 18, 14:13    [21413508]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить