如何在SQL中作为单独的列返回resultset中的最小值?

如何在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

我一直在努力解决以下SQL查询

我的结果集现在是:

| 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