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

Откуда:
Сообщений: 305
Всем привет!
Ситуация:
есть несколько select-ов, объедиенных union.
Есть записи с повторяющимся AbcID
Нужно отдельным полем к этой выборке добавить сколько раз запись с таким AbcID встречается в выборке.

Пример:
автор
AbcID, Fam, Info, Count
777, Иванов, инф1, 3
777, Иванов, инф2, 3
111, Петров, инф3, 1
777, Иванов, инф4, 3
222, Сидоров, инф5, 1
14 июл 17, 16:06    [20645182]     Ответить | Цитировать Сообщить модератору
 Re: Подсчитать кол-во вхождений в выборке  [new]
Serп
Member

Откуда:
Сообщений: 17
st90,
with cte as (
  select AbcId,count(AbsId) as Count
  from [выборка]
  group by AbcId ) T
select V.AbcID, V.Fam, V.Info, T.Count
from [выборка] V
left join T on T.AbcId=V.AbcId
14 июл 17, 16:27    [20645311]     Ответить | Цитировать Сообщить модератору
 Re: Подсчитать кол-во вхождений в выборке  [new]
Serп
Member

Откуда:
Сообщений: 17
Сорри, пятница:
with cte as (
  select AbcId,count(AbsId) as Count
  from [выборка]
  group by AbcId ) 
select V.AbcID, V.Fam, V.Info, T.Count
from [выборка] V
left join cte T on T.AbcId=V.AbcId
14 июл 17, 16:31    [20645340]     Ответить | Цитировать Сообщить модератору
 Re: Подсчитать кол-во вхождений в выборке  [new]
st90
Member

Откуда:
Сообщений: 305
Serп, спасибо!
Т.е. эту выборку придется во временную табличку загонять?

Просто [выборка] это типа
select
union
select
union
select
union
select

со своими джоинами, в т.ч. к другой временной таблице )))
14 июл 17, 16:41    [20645395]     Ответить | Цитировать Сообщить модератору
 Re: Подсчитать кол-во вхождений в выборке  [new]
invm
Member

Откуда: Москва
Сообщений: 9279
select
 t.*, count(*) over (partition by t.AbcID)
from
 (
  есть несколько select-ов, объедиенных union.
 ) t
14 июл 17, 16:43    [20645418]     Ответить | Цитировать Сообщить модератору
 Re: Подсчитать кол-во вхождений в выборке  [new]
st90
Member

Откуда:
Сообщений: 305
invm, спасибо!
Похоже то что нужно!
Только ещё усложнение возникло, как сюда добавить условие?
Типа Info='инф1'

Чтобы посчиталось кол-во вхождений AbcID с полем Info='инф1'
14 июл 17, 17:31    [20645605]     Ответить | Цитировать Сообщить модератору
 Re: Подсчитать кол-во вхождений в выборке  [new]
invm
Member

Откуда: Москва
Сообщений: 9279
st90
Чтобы посчиталось кол-во вхождений AbcID с полем Info='инф1'
select
 t.*, sum(case when t.Info = 'инф1' then 1 else 0 end) over (partition by t.AbcID)
from
 (
  есть несколько select-ов, объедиенных union.
 ) t
14 июл 17, 17:44    [20645637]     Ответить | Цитировать Сообщить модератору
 Re: Подсчитать кол-во вхождений в выборке  [new]
st90
Member

Откуда:
Сообщений: 305
invm, шикарно!
То что нужно.
Спасибо большое!
14 июл 17, 17:50    [20645653]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить