如何使用SQL Server查找所需的输出

时间:2019-04-26 06:25:43

标签: sql sql-server group-by

我有一个表tst1,其中包含3行(如下所示)

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

并具有以下数据

enter image description here

现在,我想要这样的输出(为每个代理找到独特的trig,并结合(trig1,trig2)列的计数

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

我在下面的屏幕快照中显示了要为A gent选择的列

enter image description here

1 个答案:

答案 0 :(得分:3)

您可以尝试使用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 APPLYVALUES一起使用

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