MySQL 将多行不同 step 的记录转成一行多列多个 step 展示
时间: 2024-01-16 09:04:29 浏览: 76
mysql如何将多行数据合并成一行
你可以使用MySQL中的PIVOT操作将多行不同step的记录转成一行多列多个step的形式进行展示。下面是一个示例的SQL查询语句,假设你的数据表名为steps,包含以下列:用户ID(user_id)、时间戳(timestamp)、步数(step)和步数对应的步数类型(step_type):
```
SELECT user_id,
MAX(CASE WHEN step_type = 'walk' AND timestamp = '2021-07-01' THEN step ELSE NULL END) AS 'walk_2021-07-01',
MAX(CASE WHEN step_type = 'run' AND timestamp = '2021-07-01' THEN step ELSE NULL END) AS 'run_2021-07-01',
MAX(CASE WHEN step_type = 'walk' AND timestamp = '2021-07-02' THEN step ELSE NULL END) AS 'walk_2021-07-02',
MAX(CASE WHEN step_type = 'run' AND timestamp = '2021-07-02' THEN step ELSE NULL END) AS 'run_2021-07-02'
FROM steps
GROUP BY user_id;
```
这个查询语句会将每个用户在每个日期中的步数按照步数类型(walk或run)进行展示,每个用户对应的记录只有一行。在这个查询语句中,我们使用了PIVOT操作将每个步数类型在每个日期中的步数转换为一列,使用聚合函数(如MAX)对每个步数进行处理,以便将它们转换为一列。
你可以根据自己的实际需求,修改查询语句中的表名、列名和PIVOT操作的条件。注意,在使用PIVOT操作时需要使用聚合函数对每个步数进行处理,以便将它们转换为一列。
阅读全文