请问用SQL怎么输出多列数据

各位老师:

 

总共有15列数据,第10列是地市,15列共有-3,-2,-1,0,1,2,3共七个标签

需求是:按照第10列的地市,想知道每个地市对应的第15列为-3的是多少个,-2的是多少个。。。。3的有多少个。

 

想输出下面这张表格内容,请问用SQL怎么实现呢,如果用inner join 的话太复杂了,有简单点的办法吗?

 

select col10 as city, col15 as tag, count(*) as countInTag from table group by col15 order by city, col15

 

查询后你会获得每个城市对应15列某个值有多少条的统计数据,然后你自己再对查询的结果代码做下汇总就好。

杭州 -3 10

杭州 -2 5 

 

这个就是个透视表,group by 之后用 case 表达式统计即可。

select col10 地市,
   count(case when col15 = -3 then 1 else null end) '-3',
   count(case when col15 = -2 then 1 else null end) '-2'
   ... # 照着写下来就行
from table
group by col10