【发布时间】:2022-01-23 21:09:38
【问题描述】:
这适用于 SQL Server。有没有办法根据另一列的值仅获取一组选定列的最小值?在此示例中,我想找到每个 Name 拥有的最小事务并将其放在“Minimum Transaction”列中。我无法硬编码“名称”的值。我尝试了一个子查询,但我无法理解逻辑是如何工作的。
SELECT ID, Name, Transactions, Minimum Transaction =
(
SELECT MIN(Transactions)
FROM MyTable M
JOIN MyTable M ON N.ID = M.ID
)
FROM MyTable N
WHERE Name = 'Sarah' OR 'Sue' OR 'Joe' OR 'Tim'
预期结果
| ID | Name | Transactions | Minimum Transaction |
|---|---|---|---|
| 1 | Sarah | $5 | $1 |
| 2 | Sarah | $1 | $1 |
| 3 | Sue | $10 | $4 |
| 4 | Sue | $4 | $4 |
| 5 | Sue | $6 | $4 |
| 6 | Joe | $4 | $4 |
| 7 | Tim | $12 | $12 |
| 8 | Tim | $14 | $12 |
【问题讨论】:
-
使用带窗口的
MIN。请参阅文档的example。
标签: sql sql-server subquery