相关疑难解决方法(0)

查找最大值并在SQL Server中显示来自不同字段的相应值

我有一张表格,里面有关于城市的数据,包括他们的姓名,人口以及与我的问题无关的其他字段.

ID      Name    Population
1       A       45667   
2       B       123456  
3       C       3005    
4       D       13769   
Run Code Online (Sandbox Code Playgroud)

要查找最大人口是基本的,但我需要一个结果表,其中一列中有最大人口,另一列中有相应城市的名称

Population      Name    
123456          B       
Run Code Online (Sandbox Code Playgroud)

我看过类似的问题,但由于某些原因,答案看起来过于复杂.有没有办法用1行或2行写入查询?

sql-server max

22
推荐指数
1
解决办法
6万
查看次数

SQL select max(date)和相应的值

可能重复:
如何获取包含最大值的表的记录?

我有一个如下所示的聚合查询:

SELECT TrainingID, Max(CompletedDate) as CompletedDate, Max(Notes) as Notes     --This will only return the longest notes entry
FROM HR_EmployeeTrainings ET
WHERE (ET.AvantiRecID IS NULL OR ET.AvantiRecID = @avantiRecID)
GROUP BY AvantiRecID, TrainingID            
Run Code Online (Sandbox Code Playgroud)

哪个有效,并且大部分时间都返回正确的数据,但我注意到了一个问题.返回的Notes字段不一定与max(completedDate)来自的记录匹配.相反,它将是最长的字符串?或者具有最高ASCII值的那个?如果两个记录之间存在关联,SQL Server会做什么?我甚至都不确定.我想得到的是max(completedDate)记录中的notes字段.我应该怎么做呢?

sql sql-server sql-server-2000

16
推荐指数
2
解决办法
15万
查看次数

用于查找表中代表性行的SQL查询

假设我有一个这样的支付表:

PaymentID INT,CustomerID INT,Value INT,PaidOn DATE

我想针对每个客户的最高付款运行查询.这是否可以使用单个SQL查询,以避免挖掘我不感兴趣的每一行 - 或者更糟糕的是,为每个客户运行查询?

我到目前为止所提出的最好的是:

SELECT CustomerID,MAX(Value)FROM Payments GROUP BY CustomerID;

但这并没有给我找到的行的PaymentId或PaidOn值.

sql

2
推荐指数
1
解决办法
2576
查看次数

标签 统计

sql ×2

sql-server ×2

max ×1

sql-server-2000 ×1