我正在尝试从我的表中选择信息,其中数据具有最大转速但未通过。
SELECT
ID,
Name,
REV
FROM Dms_sub
WHERE REV = (SELECT MAX(cast(REV as INT)) FROM Dms_sub GROUP BY Name)
获取错误:
子查询返回的值超过1。这是不允许的 子查询如下
答案 0 :(得分:3)
看起来您可以使用row_number()获取排名,如果您订购DESC并获得RANK = 1,则应该为您提供具有最高REV的记录
body {
margin-left: 5%;
margin-right: 5%;
}
答案 1 :(得分:1)
试试这个。
private int getIndexByString(Spinner spinner, String string) {
int index = 0;
for (int i = 0; i < spinner.getCount(); i++) {
if (spinner.getItemAtPosition(i).toString().equalsIgnoreCase(string)) {
index = i;
break;
}
}
return index;
}
答案 2 :(得分:1)
你也可以使用如下的IN运算符。
SELECT
ID,
Name,
REV
FROM Dms_sub
WHERE REV IN (SELECT MAX(cast(REV as INT)) FROM Dms_sub GROUP BY Name)
答案 3 :(得分:0)
你可以使用子查询
来调整它的最大转速(SELECT MAX(cast(REV as INT)) FROM Dms_sub GROUP BY Name)
这种情况不正确,因为它返回了一个多行,因为你的子查询中没有包含名称条件,这就是
WHERE NAME = DmsSub.NAME
这是将其调整为最大转速的正确方法
SELECT id,
NAME,
rev
FROM Dms_sub AS DmsSub
WHERE rev = (SELECT Max(rev)
FROM Dms_sub
WHERE NAME = DmsSub.NAME)