mysql中的数据格式如下:
name sub
----------------
a maths
a science
a history
b maths
b science
a computer
a english
c computer
c history
b history
c maths
我计划以html格式显示此数据:
Name maths science history computer english
a y y y y y
b y y y n n
c y n y y n
除了pivot表方法外,如何构造sql查询?
3条答案
按热度按时间wqlqzqxt1#
可以在sql中使用条件聚合:
tyky79it2#
我在这里发现了一个类似的病例。让我简单介绍一下问题和解决方案:
问题:
转换为:
对此:
解决方案:
根据这篇文章,以下是作者所做的步骤:
选择感兴趣的列,即y值和x值
用额外的列扩展基表——每个x值一列
分组并聚合扩展表——每个y值一个组
(可选)美化聚合表
以下是全文:mysql-从行到列
希望有帮助。
当做,
fnvucqvd3#
如果要动态创建列,可以使用动态透视。
使用
GROUP_CONCAT
要创建pivot列,然后使用sql execute语法,请动态执行它。sqlfiddle公司
结果