计算特定条件下的出现次数
Count number of occurrences with specific conditions
从下面的数据集中,我需要知道
How many providers have a positive response in Number 4 and Number 5.The positive response for Number 4 and Number 5 need to have occurred on the same Sheet.
For example the below scenario would qualify for this condition (has to be in the same Offer):
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE
UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 5 AS NUMBER, 'yes' AS RESPONSE
下面是数据集,然后是我试过的:
SELECT 'CFB_CSS' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 5 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 2' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 1' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 3' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 2' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 2' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 3' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 3' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 4' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 4' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 5' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 5' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 6' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 6' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 7' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 7' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 8' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 8' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 9' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 9' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 2' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 3' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFE _TSS' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 4' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 5' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 6' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 7' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 8' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 9' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE
SELECT [PROVIDER],[SHEET],[Number],[RESPONSE]
FROM (SELECT t.*,
(row_number() over (order by [PROVIDER]) -
row_number() over (partition by [SHEET]order by [PROVIDER])
) as grp
from Test t
--WHERE ([Number] =4 AND [Response] ='yes') and
-- ([Number] =5 AND [Response] ='yes')
) t
group by grp, [PROVIDER],[SHEET],[Number],[RESPONSE] ;
我不知道如何实现我的条件:
WHERE ([Number] = 4 AND [Response] = 'yes') and
([Number] = 5 AND [Response] = 'yes')
一个选项使用 exists
:
select count(distinct provider)
from mytable t
where t.number = 4 and t.response = 'yes' and exists (
select 1
from mytable t1
where t1.provider = t.provider and t1.sheet = t.sheet and t1.number = 5 and t1.response = 'yes'
)
这计算了至少有一个 sheet 有两个数字并且对每个数字都有积极响应的提供者。
另一种方法是两级聚合:
select count(distinct provider)
from (
select provider
from mytable t
where number in (4, 5) and response = 'yes'
group by provider, sheet
having min(number) <> max(number)
) t
请运行查询并查看结果。在我看来,这些是您正在寻找的结果:
SELECT * into #tmp FROM (
SELECT 'CFB_CSS' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 5 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 2' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 1' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 3' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 2' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 2' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 3' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 3' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 4' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 4' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 5' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 5' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 6' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 6' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 7' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 7' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 8' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 8' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 9' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 9' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 2' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 3' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFE _TSS' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 4' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 5' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 6' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 7' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 8' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 9' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE) as tmp
select *
into #tmp2
from (
select * from #tmp
where RESPONSE = 'yes'
) t
PIVOT(
COUNT(response)
FOR NUMBER IN (
[Num4],
[Num5])
) AS pivot_table;
select * from #tmp2
如果这些是您要查找的结果,那么以下查询将为您提供最终结果:
select *
from #tmp2
where Num4 > 0 and Num5 > 0
从下面的数据集中,我需要知道
How many providers have a positive response in Number 4 and Number 5.The positive response for Number 4 and Number 5 need to have occurred on the same Sheet. For example the below scenario would qualify for this condition (has to be in the same Offer):
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE
UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 5 AS NUMBER, 'yes' AS RESPONSE
下面是数据集,然后是我试过的:
SELECT 'CFB_CSS' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 5 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 2' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 1' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 3' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 2' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 2' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 3' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 3' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 4' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 4' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 5' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 5' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 6' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 6' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 7' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 7' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 8' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 8' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 9' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 9' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 2' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 3' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFE _TSS' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 4' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 5' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 6' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 7' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 8' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 9' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE
SELECT [PROVIDER],[SHEET],[Number],[RESPONSE]
FROM (SELECT t.*,
(row_number() over (order by [PROVIDER]) -
row_number() over (partition by [SHEET]order by [PROVIDER])
) as grp
from Test t
--WHERE ([Number] =4 AND [Response] ='yes') and
-- ([Number] =5 AND [Response] ='yes')
) t
group by grp, [PROVIDER],[SHEET],[Number],[RESPONSE] ;
我不知道如何实现我的条件:
WHERE ([Number] = 4 AND [Response] = 'yes') and
([Number] = 5 AND [Response] = 'yes')
一个选项使用 exists
:
select count(distinct provider)
from mytable t
where t.number = 4 and t.response = 'yes' and exists (
select 1
from mytable t1
where t1.provider = t.provider and t1.sheet = t.sheet and t1.number = 5 and t1.response = 'yes'
)
这计算了至少有一个 sheet 有两个数字并且对每个数字都有积极响应的提供者。
另一种方法是两级聚合:
select count(distinct provider)
from (
select provider
from mytable t
where number in (4, 5) and response = 'yes'
group by provider, sheet
having min(number) <> max(number)
) t
请运行查询并查看结果。在我看来,这些是您正在寻找的结果:
SELECT * into #tmp FROM (
SELECT 'CFB_CSS' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 1' AS SHEET, 5 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 2' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 1' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFC _EEU' AS PROVIDER, 'Offer 3' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 2' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 2' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 3' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 3' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 4' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 4' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 5' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 5' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 6' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 6' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 7' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 7' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 8' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 8' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 9' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 9' AS SHEET, 5 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 2' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 3' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFE _TSS' AS PROVIDER, 'Offer 1' AS SHEET, 4 AS NUMBER, 'no' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 4' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 5' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 6' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 7' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 8' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE UNION
SELECT 'CFD _PLL' AS PROVIDER, 'Offer 9' AS SHEET, 4 AS NUMBER, 'yes' AS RESPONSE) as tmp
select *
into #tmp2
from (
select * from #tmp
where RESPONSE = 'yes'
) t
PIVOT(
COUNT(response)
FOR NUMBER IN (
[Num4],
[Num5])
) AS pivot_table;
select * from #tmp2
如果这些是您要查找的结果,那么以下查询将为您提供最终结果:
select *
from #tmp2
where Num4 > 0 and Num5 > 0