繁体   English   中英

在一列到多列中选择不同的值

[英]Select distinct values one column into multiple columns

我有以下数据:具有多个类别的列1和具有每个类别的值的列2。 我需要转换或旋转此信息以显示跨多列的类别组的每个值。

col1      col2
----------------
1         a    
2         b 
2         c
2         d
3         e
3         f 
4         g
4         h

并需要这个结果:

col1      col2     col3     col4   col5   col6   
-----------------------------------------------   
1         a
2         b         c       d
3         e         f 
4         g         h

每个tb1计数(第2列)组(第1列)最多有七个值。 tb1列2中的所有值都不同,大约有50条记录。

您想透视表,但表当前不包含要透视的字段(“ col1”,“ col2”,“ col3”等)。 您需要一个由col1分区的行号。 Jet数据库不提供ROW_NUMBER函数,因此您必须通过将表与其自身连接来伪造它:

select t1.col1, t1.col2, count(*) as row_num
from [Sheet1$] t1
inner join [Sheet1$] t2 on t2.col1 = t1.col1 and t2.col2 <= t1.col2
group by t1.col1, t1.col2

现在您可以在row_num旋转:

transform Min(x.col2) select x.col1
from(
    select t1.col1, t1.col2, count(*) as row_num
    from [Sheet1$] t1
    inner join [Sheet1$] t2 on t2.col1 = t1.col1 and t2.col2 <= t1.col2
    group by t1.col1, t1.col2
    )  x
group by x.col1
pivot x.row_num

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM