Mysql 为列的每个唯一值选择前一条记录
我有这张桌子的结构Mysql 为列的每个唯一值选择前一条记录,mysql,sql,sql-order-by,Mysql,Sql,Sql Order By,我有这张桌子的结构 请求_id(来自其他表的F.K) 用户id 价格 我想要按价格排名前一的订单,但对于每个请求id的唯一值,例如,如果我 request_id user_id price 1, 1, 100 1, 2, 200 1, 3, 300 2, 2, 10 2, 1, 20 2,
- 请求_id(来自其他表的F.K)
- 用户id
- 价格
request_id user_id price
1, 1, 100
1, 2, 200
1, 3, 300
2, 2, 10
2, 1, 20
2, 3, 30
那么期望的结果将是:
request_id user_id price
1, 1, 100
2, 2, 10
选择用户id,按价格限制从请求订单中选择价格1请以表格形式重新格式化数据和所需输出。
SELECT x.*
FROM my_table x
JOIN
( SELECT request_id,MIN(price) min_price FROM my_table GROUP BY request_id )y
ON y.request_id = x.request_id
AND y.min_price = x.price;