使用嵌套子查询优化hive的SQL

[Author]: kwu

使用子查询优化hive的SQL

在1亿条数据中执行一条简单的语句,查询只访问主站一次的用户数量:

select count(*) as cnt from tracklog group by cookieid having cnt=1 ;

查询反应很慢,半小时都未出结果

使用嵌套子查询优化hive-SQL

select count(t.cookieid) from (select count(cookieid) as cnt,cookieid from tracklog  group by cookieid  having cnt=1 ) t;

执行效率明显提高,同时Spark-SQL也完美支持这种子查询

时间: 2024-08-25 10:52:54

使用嵌套子查询优化hive的SQL的相关文章

Sql学习笔记4——嵌套子查询(下)

5)from子句中的子查询 因为SQL任何select-from-where表达式返回的都是关系,所以from子句中允许使用子查询表达式. 考虑查询“找出平均工资超过42000美元的那些系中教师的平均工资”,之前我们用having子句来书写该查询. 现在我们不用having子句,如下: select dept_name,avg_salary from(select dept_name,avg(salary) as avg_salary from instructor group by dept_

Sql学习笔记4——嵌套子查询(上)

嵌套子查询 子查询是嵌套在另一个查询中的select-from-where表达式.子查询嵌套在where子句中时,通常用于对集合的成员资格.集合的比较以及集合的基数进行检查. 1.集合成员资格 SQL允许测试元组在关系中的成员资格.连接词in测试元组是否是集合中的成员,集合是由select子句产生的一组值构成的.连接词not in测试元组是否不是集合中的成员. 考虑“找出在2009年秋季和2010年春季学期同时开课的所有课程.”按之前所学知识,可以通过对两个集合进行并运算来书写该查询.如下: (

SQL嵌套子查询和相关子查询的执行过程有什么区别(推荐)

SQLServer子查询可以分为 相关子查询 和 嵌套子查询 两类.前提, 假设Books表如下: 类编号 图书名 出版社 价格 -------------------------------------------------------- 2 c#高级应用 圣通出版 23.00 2 Jsp开发应用 机械出版社 45.00 3 高等数学 济南出版社 25.00 3 疯狂英语 清华大学出版社 32.00 嵌套子查询的执行不依赖与外部的查询. 执行过程: (1)执行子查询,其结果不被显示,而是传递

【数据库(二)】嵌套子查询

嵌套子查询 集合成员资格 集合的比较 空关系测试 重复元组存在性测试 from子句的子查询 with子句 [例子]找出在2009年秋季,和2010年春季通识开课的所有课程 select distinct course_id from section where semester = 'Fall'and year=2009 and course_id in  (select course_id from section where semester = 'Spring' and year = 20

DBMS-SQL、聚集函数、嵌套子查询、数据库修改

SQL SQL:结构化查询语言,分为以下几个部分. ·数据定义语言(Data-Definition Language, DDL):SQL DDL提供定义定义关系模式.删除关系以及修改关系模式的命令. ·数据操纵语言(Data-Manipulation Language, DML):SQL DML包括查询语言,以及在数据库中插入元组.删除元组和修改元组的命令. ·完整性(integrity):SQL DDL包括定义完整性约束的命令,保存在数据库中的数据必须满足所定义的完整性约束,不允许破坏完整性约

React-组件嵌套-子组件通过委托向父组件传值

一.简述 父组件嵌套子组件,父组件的处理函数通过属性的方式赋值组子组件( <GenderSelect handleSelect={this.handleSelect}></GenderSelect> ),子组件通过触发事件,委托调用父组件的处理函数,从而实现把值传给父组件(return <select onChange={this.props.handleSelect}>, handleSelect: function(event) { this.setState({g

【MySQL】MySQL中针对大数据量常用技术_创建索引+缓存配置+分库分表+子查询优化(转载)

原文地址:http://blog.csdn.net/zwan0518/article/details/11972853 目录(?)[-] 一查询优化 1创建索引 2缓存的配置 3slow_query_log分析 4分库分表 5子查询优化 二数据转移 21插入数据 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求.这个时候NoSQL的出现暂时解决了这一危机.它通过降低数据的安全性,减少对事务

嵌套子查询和关联子查询

嵌套子查询:  1. 内部查询只处理一次 2. 与null比较,总得到null 3.先进行内部查询,然后再进行外部查询 关联子查询: 1.外部查询得到的每条记录传入到内部查询 2.内部查询基于外部查询传入的值 3.内部查询从其结果中把值传回到外部查询,外部查询使用这些值来完成其处理 什么时候使用? 外部查询返回较少记录时,关联子查询比嵌套子查询效率高; 内部查询返回较少记录时,嵌套子查询比关联子查询效率高. in和exists select * from A where cc in (selec

hive 执行sql客户端异常

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient 未启动hive元数据仓库 : hive --service metastore hive 执行sql客户端异常