gpt4 book ai didi

sql-server - 聚合来自多列的数据(类似于 PIVOT 表)

转载 作者:行者123 更新时间:2023-12-05 01:29:32 26 4
gpt4 key购买 nike

我有一个表,其中包含以下数据(在本示例中已缩短):

    C1    C2    C3    C4
=========================
1 0 1 1 0
2 1 1 0 1
3 1 0 1 1
4 1 1 1 1
5 0 0 1 1
6 0 0 0 1

我想创建一个查询,得到以下结果:

    C3    C4
=============
C1 2 3
C2 2 2

也就是说,在以下情况下,这四列的组合:

C1 = 1 & C3 = 1
C1 = 1 & C4 = 1
C2 = 1 & C3 = 1
C2 = 1 & C4 = 1

我已经能够取得一些进展,但最终不是我想要的。我已经设法做到这一点:http://sqlfiddle.com/#!3/7d3d4/2/0

但我无法弄清楚如何让我的查询格式化为我上面想要的输出。我打算尝试使用 PIVOT 表,但很快就放弃了这个想法,因为一旦我需要添加第二个 PIVOT 语句(并且我' d 最终不得不添加更多,因为我上面的示例是我需要执行此操作的列数的一个非常基本的示例)。

我错过了什么?

谢谢。

最佳答案

试试这个:

SELECT 'C1',SUM(CASE WHEN C1=1 AND C3=1 THEN 1 END)AS C3,
SUM(CASE WHEN C1=1 AND C4=1 THEN 1 END)AS C4
FROM T1
UNION ALL
SELECT 'C2',SUM(CASE WHEN C2=1 AND C3=1 THEN 1 END)AS C3,
SUM(CASE WHEN C2=1 AND C4=1 THEN 1 END)AS C4
FROM T1


SQL Fiddle Demo

关于sql-server - 聚合来自多列的数据(类似于 PIVOT 表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12015314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com