Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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
Mysql 配置单元使用子查询填充表_Mysql_Sql_Hadoop_Hive - Fatal编程技术网

Mysql 配置单元使用子查询填充表

Mysql 配置单元使用子查询填充表,mysql,sql,hadoop,hive,Mysql,Sql,Hadoop,Hive,我正在开发一个Hadoop数据库,使用Hive作为首选接口。我希望能够将多个SELECT语句组合成一个查询(有点像UNION,但每个查询填充不同的列)。下面的查询将在单个列中返回我需要的所有结果,但我希望能够使用每个查询填充单个列。任何关于如何实现这一点的帮助都将是非常棒的——某种等同于价值观的蜂巢可能会做到这一点。干杯 INSERT OVERWRITE TABLE tstr_tmp SELECT * FROM (SELECT time_stamp FROM http WHERE ext_hos

我正在开发一个Hadoop数据库,使用Hive作为首选接口。我希望能够将多个SELECT语句组合成一个查询(有点像UNION,但每个查询填充不同的列)。下面的查询将在单个列中返回我需要的所有结果,但我希望能够使用每个查询填充单个列。任何关于如何实现这一点的帮助都将是非常棒的——某种等同于价值观的蜂巢可能会做到这一点。干杯

INSERT OVERWRITE TABLE tstr_tmp SELECT * FROM
(SELECT time_stamp FROM http WHERE ext_hostname = 'exotichorse' AND dt = '01/07/2015' AND ext_url = 'http://lucy.info' ORDER BY time_stamp asc limit 1) as last_visit_of_day
UNION ALL 
SELECT * FROM (SELECT CAST(COUNT(hr) as string) FROM http WHERE ext_hostname = 'exotichorse' AND dt = '01/07/2015' AND ext_url = 'http://lucy.info' group by  ext_url) as n_hour_bins
UNION ALL
SELECT * FROM (SELECT time_stamp FROM http WHERE ext_hostname = 'exotichorse' AND dt = '01/07/2015' AND ext_url = 'http://lucy.info' ORDER BY time_stamp desc limit 1) as first_visit_of_day
UNION ALL
SELECT * FROM (SELECT ext_url FROM http  WHERE ext_url = 'http://lucy.info' group by ext_url) as domain_name
UNION ALL
SELECT * FROM (SELECT CAST(count(*) as string) FROM http WHERE ext_hostname = 'exotichorse' AND dt = '01/07/2015' AND ext_url = 'http://lucy.info' group by ext_url) as n_http_requests
UNION ALL
SELECT * FROM (SELECT int_ip FROM http WHERE ext_hostname = 'exotichorse' group by int_ip) as internal_ip;
按照下面的要求,每个查询将以字符串形式返回单个值。对于这个特定的查询集,将返回以下结果:

00:08:00
2
07:00:00
http://lucy.info
2
192.168.0.22
我正在处理一个数据库,该数据库将告诉我有关用户流量的信息,因此该子集将填充下表

CREATE TABLE metric_http_domain_time_summary( last_visit_of_day string, n_hour_bins string, first_visit_of_day string, domain_name string, n_http_requests string, internal_ip string) PARTITIONED BY (dt string, hr string, origin string, cl string, st string);

我知道我需要对输入的数据进行分区,但我对这一点相当有信心,一旦我成功地运行了未分区的查询,就会对其进行编辑。我的能力差距在于将子查询串在一起以填充一个表。

在离开并思考了很长一段时间后,我找到了答案。工会是没有必要的,而且实际上是在阻挠。此查询将根据需要返回上述输出。如果其他人也有同样的问题,我会让它继续存在。由于堆栈溢出声誉的限制,我不得不去掉ext_url,但是这个概念会起作用

SELECT * FROM
(SELECT time_stamp FROM http WHERE referrer_hostname = 'exotichorse' AND dt = '01/07/2015' AND ext_url = 'ext_url_here' ORDER BY time_stamp asc limit 1) as last_visit_of_day,
(SELECT CAST(COUNT(hr) as string) FROM http WHERE referrer_hostname = 'exotichorse' AND dt = '01/07/2015' AND ext_url = 'ext_url_here' group by  ext_url) as n_hour_bins,
(SELECT time_stamp FROM http WHERE referrer_hostname = 'exotichorse' AND dt = '01/07/2015' AND ext_url = 'ext_url_here' ORDER BY time_stamp desc limit 1) as first_visit_of_day,
(SELECT ext_url FROM http  WHERE ext_url = 'http://lucy.info' group by ext_url) as domain_name,
(SELECT CAST(count(*) as string) FROM http WHERE referrer_hostname = 'exotichorse' AND dt = '01/07/2015' AND ext_url = 'ext_url_here' group by ext_url) as n_http_requests,
(SELECT int_ip FROM http WHERE referrer_hostname = 'exotichorse' group by int_ip) as internal_ip;

在离开并思考了很长一段时间后,我找到了答案。工会是没有必要的,而且实际上是在阻挠。此查询将根据需要返回上述输出。如果其他人也有同样的问题,我会让它继续存在。由于堆栈溢出声誉的限制,我不得不去掉ext_url,但是这个概念会起作用

SELECT * FROM
(SELECT time_stamp FROM http WHERE referrer_hostname = 'exotichorse' AND dt = '01/07/2015' AND ext_url = 'ext_url_here' ORDER BY time_stamp asc limit 1) as last_visit_of_day,
(SELECT CAST(COUNT(hr) as string) FROM http WHERE referrer_hostname = 'exotichorse' AND dt = '01/07/2015' AND ext_url = 'ext_url_here' group by  ext_url) as n_hour_bins,
(SELECT time_stamp FROM http WHERE referrer_hostname = 'exotichorse' AND dt = '01/07/2015' AND ext_url = 'ext_url_here' ORDER BY time_stamp desc limit 1) as first_visit_of_day,
(SELECT ext_url FROM http  WHERE ext_url = 'http://lucy.info' group by ext_url) as domain_name,
(SELECT CAST(count(*) as string) FROM http WHERE referrer_hostname = 'exotichorse' AND dt = '01/07/2015' AND ext_url = 'ext_url_here' group by ext_url) as n_http_requests,
(SELECT int_ip FROM http WHERE referrer_hostname = 'exotichorse' group by int_ip) as internal_ip;

请使用示例数据和所需结果编辑您的问题。目前还不清楚这些数据是什么样的。特别是,每个子查询返回多少行?请使用示例数据和所需结果编辑您的问题。目前还不清楚这些数据是什么样的。特别是,每个子查询返回多少行?