我有一个长查询返回如下表
item_Id name value priority
1 department A F
1 department B T
1 zone 12 F
1 area Africa F
2 department A F
2 zone 12 F
2 area Africa F
2 area Europe T
我能用分组的方法来达到下面的效果吗
item_id name value
1 department B
1 zone 12
1 area Africa
2 department A
2 zone 12
2 area Europe
基本上,我想 name
,并且该值基于优先级,而不连接查询本身
3条答案
按热度按时间7kqas0il1#
您可以使用行号()
ctrmrzij2#
ROW_NUMBER
此处提供一个选项:演示
这里的策略是为记录的每个项目/部门组(可能是一个或两个记录)分配一个行号序列值。除非不存在,否则为真优先级记录分配的序列值为1,在这种情况下,将为假优先级记录分配1。
vbkedwbf3#
我是否可以使用分组来获得以下结果?
是的,你可以用
group by
:还有其他方式来表达逻辑。
row_number()
是其中之一。作为相关子查询: