Mysql 在具有相对ID的表中查找最大值
假设有一个桌上人(ID,…,n_成功,n_失败) 像 我想进行一个查询,该查询将返回n_success/(n_success+n_fails)最大值的人的ID 示例在本例中,我希望得到的输出是:Mysql 在具有相对ID的表中查找最大值,mysql,sql,Mysql,Sql,假设有一个桌上人(ID,…,n_成功,n_失败) 像 我想进行一个查询,该查询将返回n_success/(n_success+n_fails)最大值的人的ID 示例在本例中,我希望得到的输出是: a3 0.9090909091 我试过: select ID,(N_succes/(n_success + n_fails)) 'rate' from person 通过这个查询,我得到了每个ID的相对成功率 select ID,MAX(N_succes/(n_success + n
a3 0.9090909091
我试过:
select ID,(N_succes/(n_success + n_fails)) 'rate' from person
通过这个查询,我得到了每个ID的相对成功率
select ID,MAX(N_succes/(n_success + n_fails)) 'rate' from person
使用此查询,只有1行正确率,但ID不正确
我该怎么办?MS SQL
SELECT TOP 1 ID, (`n_success` / (`n_success` + `n_fails`)) AS 'Rate' FROM persona
ORDER BY (n_success / (n_success + n_fails)) DESC
MySQL
MS SQL
MySQL
这取决于您的SQL方言,但在T-SQL中是:
SELECT TOP 1 p.ID, p.n_success / (p.n_success + p.n_fails) AS Rate
FROM persona p
ORDER BY p.n_success / (p.n_success + p.n_fails) DESC
您可以根据需要对其他方言进行更改(例如,对MySql和SQLite使用
LIMIT 1
。这取决于您的SQL方言,但在T-SQL中可能是:
SELECT TOP 1 p.ID, p.n_success / (p.n_success + p.n_fails) AS Rate
FROM persona p
ORDER BY p.n_success / (p.n_success + p.n_fails) DESC
您可以根据需要对其他方言进行更改(例如,对MySql和SQLite使用
LIMIT 1
。已经有很多答案了。在这里检查工作代码和上次编辑所需的输出
SELECT `ID`, `n_success` 'rate'
FROM `persona`
ORDER BY (`n_success` / (`n_success` + `n_fails`)) DESC
LIMIT 1
已经有很多答案了。在这里检查工作代码和上次编辑所需的输出
SELECT `ID`, `n_success` 'rate'
FROM `persona`
ORDER BY (`n_success` / (`n_success` + `n_fails`)) DESC
LIMIT 1
你用的是哪种RDBM?重新标记以获得更好的可见性和答案。您指定希望Id对应于最大值
n\u success/(n\u success+n\u fails)
和最大值n\u success/(n\u success+n\u fails)
,但您的示例是错误的。您应该显示a3,0.9091
。您是对的,我犯了一个错误,我将纠正。如果一些答案帮助您解决了问题,请检查它是否正确,以便将来的访问者可以参考。但在这种情况下,一切都是正确的;)你用的是哪种RDBM?重新标记以获得更好的可见性和答案。您指定希望Id对应于最大值n\u success/(n\u success+n\u fails)
和最大值n\u success/(n\u success+n\u fails)
,但您的示例是错误的。您应该显示a3,0.9091
。您是对的,我犯了一个错误,我将纠正。如果一些答案帮助您解决了问题,请检查它是否正确,以便将来的访问者可以参考。但在这种情况下,一切都是正确的;)这里是标准SQL。不需要限制/顶部/订单等。返回一行-您想要的行。此处为标准SQL。不需要限制/顶部/订单等。返回一行-您想要的行。
select id, (n_success/(n_success + n_fails)) as rate from person
where (n_success/(n_success + n_fails)) =
(select max(n_success/(n_success + n_fails)) from person)