Как найти нужный вывод с помощью SQL Server - PullRequest
1 голос
/ 26 апреля 2019

У меня есть таблица tst1, которая содержит 3 строки (как показано ниже)

create table tst1
(
    agents varchar(5),
    trig varchar(5),
    trig2 varchar(5)
)

и имеет данные ниже

enter image description here

Теперь я хочу вывод, подобный этому (найдите отдельный триг для каждого агента с объединенным количеством столбцов (trig1, trig2)

t1->3
t2->2 
t3->5 

У меня есть показ, какой столбец выбрать для джентльмена на скриншоте ниже

enter image description here

1 Ответ

3 голосов
/ 26 апреля 2019

Вы можете попробовать использовать UNION ALL

SELECT trig,COUNT(trig)
FROM (
    SELECT trig
    FROM tst1 
    UNION ALL 
    SELECT trig2
    FROM tst1 
)t1
WHERE trig IS NOT NULL
GROUP BY trig

или используя CROSS APPLY с VALUES

SELECT v.trig,count(v.trig)
FROM tst1 t1 
CROSS APPLY(VALUES(t1.trig),(t1.trig2)) v
WHERE v.trig IS NOT NULL
GROUP BY v.trig
...