选择每个 SQL 组中的前两行
在 SQL 中,常见任务是仅检索每个组的前几行。然而,用于分组的标准聚合函数(例如 MAX() 和 MIN())仅允许选择最高或最低值。
选择每个名称的前两个分数的查询:
为了应对这一挑战,需要更复杂的查询。以下是如何为所提供的表中的每个名称选择前两个分数的示例:
SELECT * FROM test s WHERE ( SELECT COUNT(*) FROM test f WHERE f.name = s.name AND f.score >= s.score ) <= 2;
说明:
示例输出:
上面的查询返回以下输出:
NAME SCORE ----------------- willy 2 willy 3 zoe 5 zoe 6
此输出根据要求包括表中每个名称的前两个分数。
以上是如何在SQL中选择每个组的前两行?的详细内容。更多信息请关注PHP中文网其他相关文章!