다음과 비슷한 시나리오가 있는데 최대 3 열을 찾고 싶습니다.이 열을 찾는 데 사용하는 매우 긴 방법처럼 보입니다. mx
.여러 열의 최대 값
더 짧은 해결책은 무엇입니까? 이 연령대의 결합 된 최대 필요한 경우
CREATE TABLE #Pig
(
PigName CHAR(1),
PigEarlyAge INT,
PigMiddleAge INT,
PigOldAge INT
)
INSERT INTO #Pig VALUES
('x',5,2,3),
('y',2,9,5),
('z',1,1,8);
WITH Mx_cte
AS
(
SELECT PigName,
Age = PigEarlyAge
FROM #Pig
UNION
SELECT PigName,
Age = PigMiddleAge
FROM #Pig
UNION
SELECT PigName,
Age = PigOldAge
FROM #Pig
)
SELECT x.PigName,
x.PigEarlyAge,
x.PigMiddleAge,
x.PigOldAge,
y.mx
FROM #Pig x
INNER JOIN
(
SELECT PigName,
mx = Max(Age)
FROM Mx_cte
GROUP BY PigName
) y
ON
x.PigName = y.PigName
연령대 요약이 필요합니까? –
@YuriyGalanter - 조금 모호한 경우 결과는 포스트에 포함 된 스크립트와 정확히 일치해야합니다. – whytheq