考虑这张表:
id | 文字 |
---|---|
101 | 黑色 |
102 | 黑色 |
103 | 白色 |
104 | 白色 |
105 | 白色 |
如何选择除 min id 之外的所有 id,同时在另一列中添加相应的 min 值?所以预期的结果会是这样的:
不分 | 文字 | 最小 ID |
---|---|---|
102 | 黑色 | 101 |
104 | 白色 | 103 |
105 | 白色 | 103 |
我使用的是sql server 15。
您可以使用窗口化
MIN
:
SELECT *
FROM (
SELECT [id], [text], [min id] = MIN([id]) OVER (PARTITION BY [text] ORDER BY [id])
FROM Data
) t
WHERE [id] <> [min id]