使用(Webmatrix,MySQL,cshtml / razor)
您好。我试图获取最大行的所有值,但无法使其工作!
此行获取最大KG,其中exerVariName为。
var getData = "SELECT MAX(kg) AS kg FROM Test WHERE exerVariName = 'Comp'";
这写出来,当我尝试写出c.exerVariName时它会出错,很可靠它确实这样做因为我只从数据库中选择MAX(kg)而不是全部(*),所以它不能得到其他专栏。
@foreach (var c in db.Query(testData)) {
<a>@c.exerVariName</a>
<a>@c.kg</a>
}
所以我的问题是,如何制作它以便我可以获得MAX行的所有列值?
上的图像答案 0 :(得分:2)
这将返回最高kg的一行。
SELECT top 1 *
FROM Test
WHERE exerVariName = 'Comp'
order by kg desc;
但是由于SQL不保证顺序,如果两行具有相同的kg,则无法保证每次都获得相同的行。为了保证订单,您还可以通过ID订购:
SELECT top 1 *
FROM Test
WHERE exerVariName = 'Comp'
order by kg desc, id;
您应该仅使用要返回的列替换*。
答案 1 :(得分:1)
使用sum-4
和order by
:
limit
答案 2 :(得分:0)
关注实时样本的此链接: Fiddler Example
[[8 4 8]
[5 1 1]
[1 1 1]]
Counter({1: 5, 8: 2, 4: 1, 5: 1})
CREATE TABLE ForgeRock
(`kg` int, `exerVariName` varchar(7), `description` varchar(55))
;
INSERT INTO ForgeRock
(`kg`, `exerVariName`, `description`)
VALUES
(120, 'test1', 'Platform for building enterprise provisioning solutions'),
(250, 'test3', 'Full-featured access management'),
(30, 'other', 'Robust LDAP server for Java')
;
示例正在使用MySQL。
答案 3 :(得分:0)
SELECT * FROM测试WHERE kg =(SELECT MAX(kg)FROM测试exerVariName =&#39; Comp&#39;);