gpt4 book ai didi

sql - 按组条件选择寄存器

转载 作者:行者123 更新时间:2023-12-04 22:31:51 27 4
gpt4 key购买 nike

假设我有一个包含两列的表 TYPE & COLOR 两列都可以有重复值,但我需要为 TYPE 列和 COLOR 列中的每个值获取一个寄存器根据层次结构 1-蓝色、2-绿色、3-黑色、4-红色和最后 5-白色的值。为了更好地解释我自己,我有图 1 中的表格,而我想要的结果在图 2 中。

我可以使用 MIN()GROUP BY 获取 TYPE 值,但是我如何根据层次结构获取颜色值?

enter image description here

最佳答案

这可能是一种方法。

WITH CTE AS(
SELECT *, ROW_NUMBER() OVER(PARTITION BY type ORDER BY CASE color WHEN 'blue' THEN 1
WHEN 'green' THEN 2
WHEN 'black' THEN 3
WHEN 'red' THEN 4
WHEN 'white' THEN 5 END) rn
FROM SomeTable
)
SELECT type, color
FROM CTE
WHERE rn = 1;

关于sql - 按组条件选择寄存器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54595886/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com