如何根据另一行中的优先级值选择一行?
发布于 2021-05-20 11:05:57
我正在使用Oracle 11G,并且我有一个包含以下列和值的表,并且我想根据优先级列为每个列选择值。每个ID只需要一行。
ID NAME NAME_PRIORITY COLOR COLOR_PRIORITY
1 SAM 2 RED 1
1 SAM 2 GREEN 2
1 JOHN 1 BLUE 3
2 MARY 2 ORANGE 1
3 JON 2 RED 2
3 PETE 3 GREEN 1
所需结果
ID NAME NAME_PRIORITY COLOR COLOR_PRIORITY
1 JOHN 1 RED 1
2 MARY 2 ORANGE 1
3 JON 2 GREEN 1
如何选择优先级最低的名称和颜色,每个ID仅包含一行。
关注者
0
被浏览
60
1 个回答
-
一种选择是:
select d.id, min(name) keep (dense_rank first order by name_priority) name, min(name_priority) name_priority, min(color) keep (dense_rank first order by color_priority) color, min(color_priority) color_priority from yourtab d group by id;
推荐阅读
-
从另一行复制值
2021-06-15 关注 0 浏览31 1答案
-
在SQL中从另一行减去一行数据
2021-02-02 关注 0 浏览110 1答案
-
如何选择列值不不同的每一行
2022-07-28 关注 0 浏览13 1答案
-
SQL:如何从一个表中为另一行中的每一行获取随机的行数
2021-06-04 关注 0 浏览97 1答案
-
如何根据具有相同`id`的另一行有效地选择列的字段?
2021-05-10 关注 0 浏览99 1答案
-
如何比较一行中的重叠值?
2021-05-10 关注 0 浏览171 1答案
-
如何在python中获取一行一行的MySQL ResultSet
2021-02-02 关注 0 浏览93 1答案
-
选择从另一个表到结果行中每一行的计数
2021-04-20 关注 0 浏览82 1答案
-
SQL:选择列值与上一行不同的行
2021-02-02 关注 0 浏览158 1答案
-
选择每一行被另一个表联接的最小值
2021-04-20 关注 0 浏览64 1答案