且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

从mysql中的sigle表中获取列作为行

更新时间:2023-10-07 16:26:58

尝试使用group by和case语句

 选择名称,SUM( CASE   WHEN  subject = '  sub1 '  attendance =  1  那么  1   ELSE   0   END  as  sub1,
SUM( CASE WHEN subject = ' sub2' attendance = 1 那么 1 ELSE 0 END as sub2
来自表1
group by name


hai all

i have one table like

sid	name	subject	attendance
1	jhon	sub1	1
2	toni	sub1	0
3	danial	sub1	1
4	jafer	sub1	1
5	jhon	sub2	1
6	toni	sub2	1
7	danial	sub2	1
8	jafer	sub2	0


here subject names are dynamic we dont know about subject name before writing query i need output like

name	sub1	sub2
jhon	1	    1
toni	0	    1
danial	1	    1
jafer	1	    0


am unable to write query please help me
thanks in advance..

try with group by and case statement
select name, SUM(CASE WHEN subject = 'sub1' and  attendance = 1 THEN 1 ELSE 0 END) as sub1,
 SUM(CASE WHEN subject = 'sub2' and  attendance = 1 THEN 1 ELSE 0 END) as sub2
from Table1
group by name