HIVE求两个集合的减集

hive中不支持not in的写法,但是可以通过left outer join来替代

写法如下:

select a.*
from (
select *
from rpt_pms_continue
where category_level_flag='末级类目'
and cart_tracker_id is not null
and ds='2015-01-08'
) a
left outer join (
select *
from pms.cross_sale_path
where ds='2015-01-08'
and rcmd_algorithm_id in (419,420,580,581,582,650,950,1331,1655,1656,1657,1658,1659,1660,1690,1691,1950,1951)
) b on (a.cart_tracker_id=b.cart_track_id)
where b.cart_track_id is null;
时间: 2024-08-30 10:25:41

HIVE求两个集合的减集的相关文章

java求两个集合的差集

public static void main(String[] args) {Set set = new HashSet();Set set1 = new HashSet();set.add("sanny");set.add("mary");set.add("bill");set.add("tom");set.add("tony");set.add("mark");set.add(&q

求两个集合的交集和并集C#

我是用hashset<T>来实现的 具体如代码所示 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace JiaoJi { class Program { static void Main(string[] args) { int [] arrA=new int[8]{1,2,3,4,5,6,7,8}; int [] arrB=new int[5]{4,5,

用顺序表实现求两个集合的并集

#include<iostream.h> #include<malloc.h> #include<limits.h> #include<string.h> #include<stdlib.h> #include<ctype.h> #include<stdlib.h> #include<process.h> #define OK 1 #define INIT_LiST_SIZE 100//顺序表的初始长度 #de

Java里面如何求两个集合的交集

在Python里,或许我们没有这个烦恼,因为python里已经为我们提供了intersection这样的方法. 但是在Java里,就需要我们动一番脑筋了.这里浓重推荐下apache的CollectionUtils工具类. 方法签名如下所示: org.apache.commons.collections.intersection(final Collection a, final Collection b) 那么这个方法是怎么实现的呢?这里以list为例 public class TestInte

Hoj1412 求两个集合的和{A} + {B}——java实现最优解的辛酸路

写在前面 寒假闲来无事,突发奇想,想A俩题玩玩,许久没A过题了,想想那手指暴力敲击键盘的感觉就是一阵酸爽啊. 做的前几个题还挺顺溜,大概半个小时一个题吧,A了三四个,谁知道到第五个卡这了. 一个看上去很简单的题楞是卡了我俩小时,不过结果还算不错. 打破了个记录,竟然一不小心成为了这个题的最优解....... 详细描述点击此处参见原题 大致就是: 给你两个集合,要求{A} + {B}. 注:同一个集合中不会有两个相同的元素. 辛酸分析路 (1)用Java自带的工具 因为本身是玩Java的,首先想到

利用快速排序求两集合交集

1.主程序 %% 求两个集合快速排序 tic arrayList1 = [49,38,65,97,76,13,27,49,100,67]; arrayList1 = quickSort(arrayList1,1,length(arrayList1)); arrayList2 = [49,34,76,27,23,566,67]; arrayList2 = quickSort(arrayList2,1,length(arrayList2)); %% 求两个集合交集: length_arrayList

两个集合求差

需求:从两个不同历史版本的数据库提取出相同的表数据(多个表)进行差异对比. 实施:使用集合的Except扩展方法 过程:开始想的是写代码循环比较差异,但是代码写起来比较繁琐,后来发现集合有一个Except扩展方法正是用来实现求差集的. 部分代码如下 EnumerableRowCollection<HtRefInfo> hta; EnumerableRowCollection<HtRefInfo> htb; hta = DalA.LoadHt(ids); htb = DalB.Loa

数据结构实践——“求两集合交集”的一个错解分析

本文点评一位学生对基于线性表存储集合,然后对集合进行求并运算的错解,供学习者參考. [项目 - 求集合并集] 如果有两个集合 A 和 B 分别用两个线性表 LA 和 LB 表示,即线性表中的数据元素即为集合中的成员.设计算法.用函数unionList(List LA, List LB, List &LC )函数实现该算法,求一个新的集合C=A∪B.即将两个集合的并集放在线性表LC中. 提示: (1)除了实现unnionList函数外.还须要在main函数中设计代码,调用unionList进行測试

两个集合求对称差集

对称差集,两个集合的并集,减去交集. 比如,集合1,2,3和集合3,3,4,5的对称差是集合1,2,4,5. 想到的解法,将两个排序,两个集合分别用两个工作指针i,j.比较两个指针指向的元素,相同就都后移,不相同,更小的指针后移. 以下代码,给出了求对称差集数量的代码. public static int distinctElementCount(int arr1[], int arr2[]) { if (arr1.length == 0) { return arr2.length; } if