SQL:获取MAX上的所有列

时间:2016-12-09 19:17:14

标签: mysql sql razor max

使用(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行的所有列值?

编辑:链接到数据库https://s29.postimg.org/cbbxfbtxz/pic.png

上的图像

4 个答案:

答案 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-4order 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;);