0

可以说我有价值

PK |  Section | UserID | Rating |  Body
 1          20       30        8   Test
 2          20       31        5  Test2
 3          21       31        6  Test3

像这样的东西来自子查询。我想要的是我想获得最高评价的每个部分。所以 1 应该赢(比 2 更高的评级)和 3 应该赢(它是该部分的唯一一个)。我怎么写这个?我正在考虑做限制 1,但这不会奏效,因为我有多个部分。它也是一个子查询,因此尝试再次加入会很烦人。

4

2 回答 2

3

您只希望每个部分有一个结果(因此您希望按该字段分组)并且您希望结果包含最大评级。由于 GROUP BY,您必须在此处使用 HAVING 子句:

SELECT _____ FROM ______ GROUP BY Section HAVING Rating = MAX(Rating)
于 2013-03-08T02:02:34.180 回答
0

在 MySQL 中,您可以这样排序:

ORDER BY Rating ASC 或者 ORDER BY Rating DESC

Asc 是上升的,而 Desc 是下降的。您也可以LIMIT 1在此之后使用以获得最高评分。

现在,您想为每个部分获取它。为此,您可以使用WHERE仅选择该部分。如果您想获得每个部分的最高评分,您可能(如果我没记错的话)必须遍历每个部分编号并查询最高的项目。

于 2013-03-08T01:56:23.537 回答