Sql 不同列的不同分组

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 我需要像

我不知道这是否可能。。 例如,我有一个包含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
我需要像

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