繁体   English   中英

(MySQL) Select 基于最大计数和决胜逻辑的行

[英](MySQL) Select row based off max count and tiebreaker logic

我有一个查询,当前提取每个用户的数字计数和创建记录的日期。

用户 数字 创建日期
1个 AA1 2个 2022 年 3 月 1 日
1个 BB1 2个 2022 年 4 月 1 日
1个 CC1 1个 2020 年 1 月 1 日

我希望计数最高且日期最近的行作为决胜局,在我的示例中为 BB1。 我很难弄清楚我的查询接下来要采取什么步骤:

SELECT id, number, count(dl.number) as 'num', date_created
FROM some_table
WHERE id = 1
GROUP BY id, number;

我已经尝试将其放入别名的子查询中,并在 count 和 date_created 上使用 max(),但它并没有让我得到我正在寻找的东西。

非常感谢任何帮助。 谢谢!

您可以使用ORDER BY按降序排列所需的条件,然后仅使用LIMIT选择第一个:

select *
from some_table
where user = 1
order by num desc, date_created desc
limit 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM