在开发过程中,行转列是会经常碰到的问题,在mysql语法中,一般是通过case when语句进行判断实现的,在sqlserver和oracle一般通过专门的函数来实现,例如PIVOT 、UNPIVOT之类的函数。用这些函数使我们的sql更简洁明了,但是不利于理解和习惯,希望通过下面的例子,让大家能够快速了解mysql行转列的实现思路。
首先我有一张用户推荐表,表里面要统计用户名,被推荐人员的状态,以及每个状态对应的统计人数
通过上面的查询语句,看到截图里面的内容,这样的内容是不利于客户进行分析的,因为每个用户有多比数据,并且每种状态的统计数量都不在一列显示,没有对比性,通过行转列可以实现每个客户的多种状态在一列进行统计显示,更加方便用户
这样就比较简介明了,用户用起来也很方便