MySQL 按多列 (3) 排序,具有一些特定规则



问题已发布,但标记为重复。请注意ORDER BY我知道具有多列和 窗口函数MIN()例如用于简单情况 两列。

假设我有一个所谓的Contact表(表 1)。我想要什么 实现是先按Status排序,而不是在结果内排序,排序 按CalledAtClient(通过CreatedAt保持Client靠近 同时保持Client从第一次排序开始的顺序)

我的解释,如果提出更好的问题/解释,请提出更好的问题/解释 它使事情更加清晰。

谢谢

第 0 步:

ID用户客户端调用状态
1BY2022-02-07不回答
2A Y2022-02-09答案
3AX2022-02-08答案
4BX2022-02-10不回答
5AX2022-02-06答案
6BZ2022-02-11不回答

在 MySQL 5.x 中

SELECT
yourTable.*
FROM
yourTable
INNER JOIN
(
SELECT
client,
MIN(id)       AS min_id,
MIN(Status)   AS min_status
FROM
yourTable
GROUP BY
client
)
AS client
ON client.client = yourTable.client
ORDER BY
client.min_status,
client.min_id,
yourTable.calledAt

相关内容

最新更新