我有下面的表,我正在寻找创建一个新的列,类型可以是“纯”或“混合”的基础上两个不同的条件。
| 身份证|单位|面积|n_单位|数量|
| - ------|- ------|- ------|- ------|- ------|
| 1245|小行星5485245| A类|第二章|1个|
| 1245|小行星2488754| B|第二章|1个|
| 小行星2358|小行星548754| A类|三个|1个|
| 小行星2358|小行星84447| A类|三个|1个|
| 小行星2358|小行星548754| A类|三个|1个|
| 小行星4582|小行星84447| C级|第二章|1个|
| 小行星4582|小行星548754| D级|第二章|1个|
| 小行星9696|小行星84447| B|第二章|1个|
| 小行星9696|小行星548754| K|第二章|1个|
我希望得到如下结果:
| 身份证|单位|面积|n_单位|数量|类型|
| - ------|- ------|- ------|- ------|- ------|- ------|
| 1245|小行星5485245| A类|第二章|1个|溷合|
| 1245|小行星2488754| B|第二章|1个|溷合|
| 小行星2358|小行星548754| A类|三个|1个|纯的|
| 小行星2358|小行星84447| A类|三个|1个|纯的|
| 小行星2358|小行星548754| A类|三个|1个|纯的|
| 小行星4582|小行星84447| C级|第二章|1个|纯的|
| 小行星4582|小行星548754| D级|第二章|1个|纯的|
| 小行星9696|小行星84447| B|第二章|1个|溷合|
| 小行星9696|小行星548754| K|第二章|1个|溷合|
我的逻辑是这样的:
如果具有相同ID的所有行都是AreaA、C或D,则具有该ID的所有行都是类型“pure”。
否则,即如果在Id内存在不是A、C或D的字母,则具有相同Id的所有行都是类型“混合.”
n_units基于总单元,即具有相同ID的行数。
期待您的帮助。
1条答案
按热度按时间hzbexzde1#
它需要一个窗口函数和一个case表达式,如下所示:
如果输出中有“mix”,它将成为分配给分区的最小值,否则将得到“pure”。
检查here演示。