Приведенные выше ответы верны, посмотрите пример данных и вывод. Если у вас другое требование, предоставьте пример данных.
--drop table #data_channel
create table #data_channel
(
sno int identity primary key,
device_id varchar(100),
signal_info int
)
insert into #data_channel values
('A',24),
('B',14),
('C',24),
('D',31),
('E',1),
('F',13),
('G',20),
('H',12)--,('A',24),('A',24),('A',24),('A',24),('A',24),('A',24),
Запрос
select signal_status,Count(*) as signalcount
from (select case
when signal_info <= 31 and signal_info > 24 then 'Excellent'
when signal_info <= 24 and signal_info > 19 then 'Good'
when signal_info <= 19 and signal_info > 14 then 'Average'
when signal_info <= 14 and signal_info > 9 then 'Below Average'
when signal_info <= 9 and signal_info > 5 then 'Poor'
when signal_info <= 5 and signal_info > 0 then 'Very Poor' end
AS signal_status from #data_channel) AS WTH group by signal_status;
Вывод
signal_status signalcount
Below Average 3
Excellent 1
Good 3
Very Poor 1