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

问题描述 投票:1回答:1

我有一个表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

sql sql-server group-by
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.