我有一个表tst1
,其中包含3行(如下所示)
create table tst1
(
agents varchar(5),
trig varchar(5),
trig2 varchar(5)
)
并有以下数据
现在我想要这样的输出(找到每个代理的不同trig,其中包含(trig1,trig2)列的计数
t1->3
t2->2
t3->5
我在下面的截图中显示了选择A gent的列
你可以尝试使用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