您可以为此使用窗口函数:
SELECT
id,
name,
CONCAT(
age,
CASE WHEN MAX(pog) OVER(PARTITION BY id) = 'Benchmark' THEN
CASE WHEN COALESCE(pog, '') <> 'Benchmark' AND Age = MAX(CASE WHEN pog = 'Benchmark' THEN Age END) OVER(PARTITION BY id) THEN '-Yes' ELSE '-No' END
END
) as age,
pog
FROM table
我相信这也会起作用:
SELECT
id,
name,
CONCAT(
age,
CASE COALESCE(MAX(CASE WHEN pog = 'Benchmark' THEN age END) OVER(PARTITION BY id), -1)
WHEN age THEN REPLACE(CONCAT(age, pog, '-Yes'), 'Benchmark-Yes', '')
WHEN -1 THEN ''
ELSE '-No' END
END
) as age,
pog
FROM table
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句