[英](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.