2016-05-31 74 views
2

我有一个表像值:SQL最小值和最大值为多行

Name Test Score 
Bob Test1 97.0 
Bob Test2 96.5 
Bob Test3 94.5 
Joe Test1 96.5 
Joe Test2 98.5 
Joe Test3 92.0 

我想MINMAX得分为每个Name在一行上,如:

Name Min_Score Max_Score 
Bob 94.5  97.0 
Joe 92.0  98.5 

我可以单独获得MINMAX,但不知道如何同时获得两者。

+0

什么数据库系统是你在用吗? –

+1

'按名称从表组中选择名称,min(分数)作为min_score,max(得分)作为max_score' – Hellion

+0

MSSQL ...我试过,但两个值相等。 – macbb

回答

3

您可以按名称对选择进行分组。这将为您提供每个独特的名称。您还可以使用聚合函数min和max来扫描您的表中的每个唯一名称。这是一个普遍的要求:

SELECT 
    name 
    , min(score) as Min_score 
    , max(score) as max_score 
FROM table 
GROUP by name 

查询Here is an example和正确的结果

+0

谢谢,我的结果让我失望。我有很多分数是相同的最小值和最大值,所以我认为它不能正常工作。 – macbb

相关问题