问卷调查,后台查看数据,关于sql的编写

问卷调查,关于选择题,后台查看数据,某一选择题 选A的个数 与此题 选择ABCD的个数 的比例、选B的个数 与此题 选择ABCD的个数 的比例、选C。。。。。

问卷调查,关于选择题,后台查看数据,某一选择题 选A的个数 与此题 选择ABCD的个数 的比例、选B的个数 与此题 选择ABCD的个数 的比例、选C。。。。。

具体格式:(这里我就用以前的数据处理这道题,其中,name字段相当于题目的总括,里面的数据相当于具体的题目(zhangsan、lisi.....),grade就是所选择的ABCD,salary不用管,在这题没有实际的意义)

                              student表:

要求结果如下:例如zhangsan这题 选A的占67%,选B的占33%,选C的占0%,选D的占0%。

1、思考:

子查询、分组

2、编写:

sql语句:

select name,count(*) total,
ROUND((SELECT count(*) FROM student S1 WHERE grade='A' and S1.name=S2.name)/count(*),2) as A ,
ROUND((SELECT count(*) FROM student S3 WHERE grade='B' and S3.name=S2.name)/count(*),2) as B,
ROUND((SELECT count(*) FROM student S4 WHERE grade='C' and S4.name=S2.name)/count(*),2) as C,
ROUND((SELECT count(*) FROM student S5 WHERE grade='D' and S5.name=S2.name)/count(*),2) as D
from student S2 group  by name