分两次进行不同的查询就可以实现了
再查出组长信息
两个查询一合并就可以了
SQL角本如下:
select a用户名 组长, b组员数量, b文章总数, b评论总数from (select 编号, 用户名 from table_name where 角色 = '组长') a, -- 找组长信息
(select 组长,
count(1) 组员数量,
sum(文章) 文章总数,
sum(评论) 评论总数
from table_name
where 组长 is not null
group by 组长) b -- 找组员信息
where a编号 = b组长
如下图
A13,公式
=LOOKUP(,0/FREQUENCY(ROW(A1),SUBTOTAL(3,OFFSET($B$2,,,ROW($1:$4),11))),$A$2:$A$5)
B13,数组公式,三键输入
=INDEX($B$1:$L$1,SMALL(IF(OFFSET($B$1,MATCH(A13,$A$1:$A$5,)-1,,,11)>0,COLUMN(OFFSET($B$1,MATCH(A13,$A$1:$A$5,)-1,,,11))),COUNTIF(A$12:A13,A13))-1)
C13,公式
=INDEX($A$1:$M$5,MATCH($A13,$A$1:$A$5,),MATCH($B13,$A$1:$L$1,))
行列自行转换
代码如下:
Sub Macro1()For i = 1 To 3
Range("A" & i 13 - 12)Resize(12)Copy
Range("F" & i + 1)PasteSpecial Paste:=xlPasteAll, Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=True
Next
End Sub你所谓的行列转换应该是指纵表转横表,横表转纵表
给你个例子
纵表转横表:
使用DECODE语句,可以很方便的将纵表转为横表,例子如下:
原表查询结果:
ID MAJOR CURRENT_CREDITS
------ ---------------- ---------------
10000 Computer Science 98
10000 History 88
10001 Computer Science 75
10000 Economics 66
我们要把各科成绩从同一列转到不同的列中去。
SQL>select id,
sum(decode(major,’Computer Science’,current_credits,0)) cs,
sum(decode(major,’History’,current_credits,0)) his,
sum(decode(major,’Economics’,current_credits,0)) eco
from students
group by id
ID CS HIS ECO
------ ----------- ------------- -----
10000 98 88 66
10001 75
横表转纵表:
使用 UNION 即可实现将横表转为纵表,以上面的表为例:
转换前:
ID CS HIS ECO
------ ----------- ------------- -----
10000 98 88 66
SQL>select id, ’Computer Science’ major,cs current_credits
from students
union
select id, ’History’ major,his current_credits
from students
union
select id, ’Economics’ major,eco current_credits
from students
ID MAJOR CURRENT_CREDITS
------ ---------------- ---------------
10000 Computer Science 98
10000 History 88
10000 Economics 66你这个是将纵表转换为横表,例如如下数据:
'wangming', 'shuxue', 100
'wangming', 'yuwen', 90
'wangming', 'yingyu', 140
可以使用如下语句处理:
select av_name,av_score shuxue,bv_score yuwen,cv_score yingyu from temp_1 a,temp_1 b,temp_1 c
where av_name=bv_name
and av_name=cv_name
and av_name='wangming'
and av_course='shuxue'
and bv_course='yuwen'
and cv_course='yingyu';
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)