Sql 不同列的不同分组
我不知道这是否可能。。 例如,我有一个包含4列的表Sql 不同列的不同分组,sql,sql-server,reporting-services,ssrs-2008,Sql,Sql Server,Reporting Services,Ssrs 2008,我不知道这是否可能。。 例如,我有一个包含4列的表 Col1 Col2 Col3 Col4 ------------------------------------ O1 O1 P1 P1 O2 O1 P3 P1 O2 O2 P4 P1 O1 O3 P2 P2 O3 O3 P5 P3 我需要像
Col1 Col2 Col3 Col4
------------------------------------
O1 O1 P1 P1
O2 O1 P3 P1
O2 O2 P4 P1
O1 O3 P2 P2
O3 O3 P5 P3
我需要像Col Col1Col3 Col2Col4
------------------------------------
O1 2 1
O2 2 1
O3 1 2
结果应该是Col1的计数(Col3)组和Col2的计数(Col4)组。
不使用“UNION”就可以实现这一点,因为我有5个不同的分组要做。有人能帮我吗 请尝试:
select
col1, Col1Col3, Col2Col4
From(
select col1,count(Col3) Col1Col3
from YourTable
group by Col1
)x join
(
select col2, Count(Col4) Col2Col4
from YourTable
group by Col2
)y on x.Col1=y.col2
或
“我有一个3列的表格,例如Col1 Col2 Col3 Col4”Sry Tim,这是一个打字错误:)看看你问题背后的大量代码,我有一个提示:你可以将stackoverflow格式设置为你的代码联合解决方案将易于编写、理解和维护。有什么问题吗?谢谢你的回答Techdo,但我必须在同一个查询中进行其他5个分组。在这里,我必须使用多个联接作为您的进程。有没有其他方法可以减少代码行数?这些查询是不等价的。第一个仅在col1和Col2中提供的节目组是。。。这是因为加入。我为给定的样本数据编写了查询。
select
col1,
SUM(c13) Col1Col3,
SUM(c24) Col2Col4
from(
select Col1, 1 c13, 0 c24 From YourTable
union all
select Col2, 0 c13, 1 c24 From YourTable
)x
group by col1