如何在一个有秩的问题中提出另一个问题

  • 本文关键字:问题 另一个 一个 sql
  • 更新时间 :
  • 英文 :


我想在第一个输出中显示如果数据库中的第一个排名等于1

SELECT id, name,password,oldname,number,
RANK() OVER(ORDER BY oldname="mxmx" DESC),
RANK() OVER(ORDER BY number DESC)
as "Rank1"
FROM account

例如:

输入图片描述

请引导我得出结论

如果您想让排名靠前的条目首先出现在结果中,请使用:

SELECT
id,
name,
password,
oldname,
number,
RANK() OVER (ORDER BY oldname="mxmx" DESC),
RANK() OVER (ORDER BY number DESC) AS "Rank1"
FROM account
ORDER BY 
RANK() OVER (ORDER BY oldname="mxmx" DESC)

或者,如果您愿意,您可以将原始查询包装在SELECT * FROM (...) table_alias ORDER BY rank_alias中。(尽管您应该选择您需要的实际列——我只为了简洁而写*)

p。此外,我发现RANK本身的顺序返回的结果顺序为"last-RANK-first",至少对于MySQL 8是这样。虽然我找不到一个可以保证这种行为的引用,但您的查询将是:

SELECT
id,
name,
password,
oldname,
number,
RANK() OVER (ORDER BY number DESC) AS "Rank1",
RANK() OVER (ORDER BY oldname="mxmx" DESC)
FROM account

相关内容

最新更新