Из вашего примера, похоже, вы хотите считать последовательные записи для каждого отдела.
Вы можете сделать это, объединив номер строки и идентификатор заказа.
create table tblDept (
id int not null,
dept varchar(50)
);
insert into tblDept values (1, 'A');
insert into tblDept values (2, 'A');
insert into tblDept values (3, 'B');
insert into tblDept values (4, 'B');
insert into tblDept values (5, 'B');
insert into tblDept values (6, 'A');
with orderedDepts as (
select
dept,
id,
row_number() over (partition by dept order by id) -
row_number() over (order by id) as rn
from tblDept
)
select
dept,
count(*) as num
from orderedDepts
group by
dept,
rn
order by
max(id)
дает выход:
+------+-----+
| DEPT | NUM |
+------+-----+
| A | 2 |
| B | 3 |
| A | 1 |
+------+-----+
SQL Fiddle
Я не понимаю, зачем вам две записи для департамента A? В отделе A есть 3 записи в таблице. – HoneyBadger
Каковы ваши попытки до сих пор? – Goose
Можете ли вы уточнить вывод правильно, т. Е. Должен ли быть только один результат для A, который должен иметь счет 3. Вы упоминаете COUNT, который немного вводит в заблуждение. –