如何在SQL中作为单独的列返回resultset中的最小值?
我一直在努力解决以下SQL查询 我的结果集现在是:如何在SQL中作为单独的列返回resultset中的最小值?,sql,Sql,我一直在努力解决以下SQL查询 我的结果集现在是: | Id | Customer | Sales | | 1 | 1 | 10 | | 2 | 1 | 20 | | 3 | 2 | 30 | | 4 | 2 | 40 | 我想做的是增加一个列,显示该客户的最小销售额: | Id | Customer | Sales | SmallestSale | | 1 | 1 | 10 | 10
| Id | Customer | Sales |
| 1 | 1 | 10 |
| 2 | 1 | 20 |
| 3 | 2 | 30 |
| 4 | 2 | 40 |
我想做的是增加一个列,显示该客户的最小销售额:
| Id | Customer | Sales | SmallestSale |
| 1 | 1 | 10 | 10 |
| 2 | 1 | 20 | 10 |
| 3 | 2 | 30 | 30 |
| 4 | 2 | 40 | 30 |
由于获取这三列的select查询现在相当复杂,我希望避免子查询
有什么想法吗
Mika假设您的RDBMS支持窗口聚合
SELECT Id,
Customer,
Sales,
MIN(Sales) OVER (PARTITION BY Customer) AS SmallestSale
FROM YourTable
select s.Id, s.Customer, s.Sales, sm.SmallestSale
from Sales s
inner join (
select Customer, min(sales) as SmallestSale
from Sales
group by Customer
) sm on s.Customer = sm.Customer