SQL 不是我的强项,如果能得到各位专家的帮助那就太棒了:)
数据集:
Name of Product | Part Number | Size 1 | Size 2 | Size 3
------------------|----------------|-----------|---------|----------
Item1 | 12345 | 4 | 4 | 6
Item2 | 54321 | 4 | 5 | 4
Item3 | 54123 | 6 | 2 | 2
我需要返回 3 个尺寸中的最高值并将它们聚合到一列中。
Item1 | 6
Item2 | 5
Item3 | 6
谷歌搜索只让我找到了 MAX() 函数,但它只是返回数据集中的最高值,这不是我想要的。
最佳答案
您可以使用 UNPIVOT
来拆分列,然后最大值就变成一个简单的 MAX()
,并使用 GROUP BY
与相关[产品名称]
SELECT [Name of Product], Max(TheSize)
FROM Table1
UNPIVOT
(
[TheSize]
FOR Size in ([Size 1], [Size 2], [Size 3])
) x
GROUP BY [Name of Product];
关于sql - 返回一组列中最高值的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29830103/