mysql - 在 SQL 中将行转换为列

标签 mysql sql

考虑带有架构的表

orders(user int, amount int, created datetime);

一行=一笔交易,我想按用户查询交易数据组

例如

User    First_Order_Amount    First_Order_DateTime Second_OrderAmount    Second_Order_DateTime
1       21                    2019-01-02           22                    2019-01-03
2       13                    2019-01-04           14                    2019-01-05

SQL fiddle :https://www.db-fiddle.com/f/v4gZUMFbuYorB27AH9yBKy/8

最佳答案

如果您使用的是MySQL 8+,您还可以使用窗口函数来代替group by:

SELECT user, amount, created FROM
(SELECT * ,
ROW_NUMBER() OVER (PARTITION BY user ORDER BY user) AS rn
from orders) t
where t.rn = 1

关于mysql - 在 SQL 中将行转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55296123/

相关文章:

python - 查询、Redland 和 python 绑定(bind)问题

每个用户最多两个条目的 SQL 唯一约束

sql - SQL Server 中的 "PARALLEL"等效项是什么

sql - Android Sqlite语句问题

php - 如果转发,则更新包含 retweet_count 的 MySQL 行

mysql - MySql 中的通配符类型

mysql - 如何在 ColdFusion 和 MySql 数据库中查找受 INSERT INTO 语句影响的行数?

mysql - 在sql中检索最新日期时间条目的复杂性?

mysql - 在 UPDATE 语句中使用 WHERE 子句

mysql - SQL查询的形成