我有一个列id为\u list的表,其中有一组字符串,例如。 ["1","2","4","6"]
.
原来的table是
+-------------------+
| id_list |
+-------------------+
| ["1","2","4","6"] |
|-------------------+
| ["1","2","4","6"] |
|-------------------+
| ["1","2","4","6"] |
|-------------------+
| ["1","2","4","6"] |
|-------------------+
| ["7"] |
|-------------------+
我通过分解id\u list列创建了下表:
SELECT id, id_list FROM data LATERAL VIEW explode(id_list) dummy AS id;
+-------------+-------------------+
| id | id_list |
+-------------+-------------------+
| 1 | ["1","2","4","6"] |
+-------------|-------------------+
| 2 | ["1","2","4","6"] |
+-------------|-------------------+
| 4 | ["1","2","4","6"] |
+-------------|-------------------+
| 6 | ["1","2","4","6"] |
+-------------|-------------------+
| 7 | ["7"] |
+-------------|-------------------+
我想从id\u列表中删除该id,得到如下表:
+-------------+-------------------+
| id | id_list |
+-------------+-------------------+
| 1 | ["2","4","6"] |
+-------------|-------------------+
| 2 | ["1","4","6"] |
+-------------|-------------------+
| 4 | ["1","2","6"] |
+-------------|-------------------+
| 6 | ["1","2","4"] |
+-------------|-------------------+
| 7 | [] |
+-------------|-------------------+
不使用自定义项怎么做?
1条答案
按热度按时间a0zr77ik1#
您只能分解和收集那些id不相等的元素。
演示:
结果: