请帮我解决问题
我的真实表格是:
id group numberOfLevel(counted column)
1 10 4
2 10 2
3 11 2
4 11 1
5 11 3
6 11 2
7 21 1
8 21 2
9 30 1
10 40 2
但我想表明:
group 1st_level 2nd_level 3rd_level over4th_level
10 0 1 0 1
11 1 2 1 0
21 1 1 0 0
30 1 0 0 0
40 0 1 0 0
我需要用哪种方式来展示桌子? 请分享经验?
答案 0 :(得分:2)
这是一个基本的数据透视查询,可以在这样的查询中使用ANSII SQL案例,
它应该适用于大多数数据库:
select group_nr,
sum( case when numberOfLevel = 1 then 1 else 0 end ) As level_1st,
sum( case when numberOfLevel = 2 then 1 else 0 end ) As level_2nd,
sum( case when numberOfLevel = 3 then 1 else 0 end ) As level_3rd,
sum( case when numberOfLevel >= 4 then 1 else 0 end ) As over4th_level
from table1
group by group_nr
;
演示:http://sqlfiddle.com/#!2/4bd04/4
不要使用group
作为列名,因为group
是SQL中的关键字。