如何在html中以特定格式显示sql数据
我在Mysql中有以下格式的数据:如何在html中以特定格式显示sql数据,html,mysql,sql,pivot-table,Html,Mysql,Sql,Pivot Table,我在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
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
如何制定除透视表方法之外的sql查询?您可以在sql中使用条件聚合:
您可以在SQL中使用条件聚合:
如果要动态创建列,可以使用动态透视 使用GROUP_CONCAT创建透视列,然后使用SQL执行语法,动态执行它
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'COALESCE(MAX(CASE WHEN sub = ''',
sub,
''' then ''y'' end),''n'') AS ',
sub
)
) INTO @sql
FROM T;
SET @sql = CONCAT('SELECT name, ', @sql, '
FROM T
GROUP BY name');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
结果
如果要动态创建列,可以使用动态透视 使用GROUP_CONCAT创建透视列,然后使用SQL执行语法,动态执行它
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'COALESCE(MAX(CASE WHEN sub = ''',
sub,
''' then ''y'' end),''n'') AS ',
sub
)
) INTO @sql
FROM T;
SET @sql = CONCAT('SELECT name, ', @sql, '
FROM T
GROUP BY name');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
结果
我在这里发现了一个类似的案例。让我简单介绍一下问题和解决方案: 问题: 将其转换为: 为此: 解决方案: 从这篇文章中,作者采取了以下步骤: 选择感兴趣的列,即y值和x值 用额外的列扩展基表-每个x值一列 分组并聚合扩展表-每个y值一组 可选对聚合表进行修饰 全文如下: 希望能有帮助
关于,我在这里发现了一个类似的案例。让我简单介绍一下问题和解决方案: 问题: 将其转换为: 为此: 解决方案: 从这篇文章中,作者采取了以下步骤: 选择感兴趣的列,即y值和x值 用额外的列扩展基表-每个x值一列 分组并聚合扩展表-每个y值一组 可选对聚合表进行修饰 全文如下: 希望能有帮助
关于,你提到了html。大概,您有一个将原始数据转录成html的层。如果是我,我会处理缺少结果的逻辑和表格,你提到html。大概,您有一个将原始数据转录成html的层。如果是我,我会处理缺少结果的逻辑和表格。如何使用另一列的Y或N值,而不是硬编码。@qwww其他表中是否包含该值?您可以使用动态sql获取值。相同的表..但不同column@qwww但是你怎么知道哪个州意味着哪个值呢?在本例中,您如何知道是否存在get sub mean Y else N如何使用另一列中的Y或N值,而不是硬编码。@qwww是其他表中包含的值?您可以使用动态sql获取值。相同的表..但不同column@qwww但是你怎么知道哪个州意味着哪个值呢?在这个例子中,你怎么知道如果有子均值Y或者n如果主题的数量是动态的呢?如果主题的数量是动态的呢?
name maths science history computer english
a y y y y y
b y y y n n
c y n y y n
select * from history;
+--------+----------+-----------+
| hostid | itemname | itemvalue |
+--------+----------+-----------+
| 1 | A | 10 |
| 1 | B | 3 |
| 2 | A | 9 |
| 2 | C | 40 |
+--------+----------+-----------+
select * from history_itemvalue_pivot;
+--------+------+------+------+
| hostid | A | B | C |
+--------+------+------+------+
| 1 | 10 | 3 | 0 |
| 2 | 9 | 0 | 40 |
+--------+------+------+------+