数据如下:
StuID | MarkType | TesterID |
201301001 | A | 001 |
201301001 | B | 002 |
201301002 | A | 001 |
201301001 | C | 001 |
201301002 | C | 001 |
需要统计考生打分类型的打分员:
结果表如下:
StuID | A | B | C |
201301001 | 001 | 002 | 001 |
201301002 | 001 | 001 |
分类统计Sql怎么写啊?(不需要用表多次连接查询的方式,希望能提供分类统计的实现脚本)
select * from 表名 pivot (max(TesterID) for MarkType in (A ,B,C)) a
行转列完全可以实现你的功能,脚本嘛LZ百度参考下例子然后自己动手写。你可以的!
用case when 语句, 再配合max(),和group by 可以实现
select stuID,
sum(case MarkType when 'A' then TesterID else '' end) as A,
sum(case MarkType when 'B' then TesterID else '' end) as B,
sum(case MarkType when 'C' then TesterID else '' end) as C
from 表名 group by stuID
这个简单。
行列转换,还是自己百度一下吧。