Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hive 配置单元-在不创建外部表或使用联接的情况下,为每个日期选择不同的唯一ID_Hive_Bigdata_Hiveql_Hadoop2 - Fatal编程技术网

Hive 配置单元-在不创建外部表或使用联接的情况下,为每个日期选择不同的唯一ID

Hive 配置单元-在不创建外部表或使用联接的情况下,为每个日期选择不同的唯一ID,hive,bigdata,hiveql,hadoop2,Hive,Bigdata,Hiveql,Hadoop2,我正在处理具有以下列的数据集: unique_ID Date a 2018_09_08 a 2018_09_18 a 2018_09_28 d 2018_09_08 我希望选择在所有三个日期(即2018年9月8日、2018年9月18日和2018年9月28日)发生的那些独特的识别码 我的输出应该是“a” 这个问题有一个很长的解决方案-提取每个日期的唯一ID,并在所有三个ID

我正在处理具有以下列的数据集:

unique_ID       Date
a               2018_09_08
a               2018_09_18
a               2018_09_28
d               2018_09_08
我希望选择在所有三个日期(即2018年9月8日、2018年9月18日和2018年9月28日)发生的那些独特的识别码

我的输出应该是“a”

这个问题有一个很长的解决方案-提取每个日期的唯一ID,并在所有三个ID上创建外部表,然后在三个表上使用join来获取所有三个日期的唯一ID。我认为应该有一个更好的解决方案,因为在这种情况下,我们只有3个日期,可能会在以后出现,所以我正在寻找一个更普遍的解决方案

下面是我编写的查询-
从表名称中选择不同的(唯一的\u ID),其中Date='2018\u 09\u 08'和Date='2018\u 09\u 18'和Date='2018\u 09\u 28'
,返回空值

我还试图编写一个子查询,但我怀疑HIVE在这种情况下是否支持这样的子查询。以下是我写的:

select count(distinct(unique_ID)) from (
(select distinct(unique_ID) from table_name where Date = '2018_09_08') a
union all
(select distinct(unique_ID) from table_name where Date = '2018_09_18') b
union all
(select distinct(unique_ID) from table_name where Date = '2018_09_28') c
);
我得到了以下解析错误:
失败:ParseException第3:0行缺失(位于“union”附近)、“第4:87行缺失EOF(位于“b”附近”)”


在这种情况下,我们如何获得唯一的ID?

这可以通过
分组方式和
拥有
来实现

select unique_id,count(distinct date)
from tbl
where date in ('2018_09_08','2018_09_18','2018_09_28')
group by id 
having count(distinct date) = 3

这可以通过
分组方式
拥有
来实现

select unique_id,count(distinct date)
from tbl
where date in ('2018_09_08','2018_09_18','2018_09_28')
group by id 
having count(distinct date) = 3

您是否尝试过使用或代替,并且?
将为所有三天的总和提供不同的唯一\u ID。因此,在上述情况下,它会给我a和b,而我只想得到a,因为这在所有三个日期中都很常见。您是否尝试过或替代了,并且?
会为所有三天的组合提供不同的唯一ID。因此,在上面的例子中,我会得到a和b,而我只想得到a,因为这在所有三次约会中都很常见。我昨天自己得到的…忘了发布答案…这正是我所做的!谢谢你的努力,我真的很感激。我昨天自己也收到了…忘了发布答案…这正是我所做的!谢谢你的努力,我真的很感激。