草庐IT

jobtitle_select

全部标签

sql - HIVE SELECT 可以结合 GROUP BY 和 ORDER BY 吗?

我在Hive中做一些相对简单的查询,似乎无法在单个语句中组合GROUPBY和ORDERBY。我可以毫无问题地选择GROUPBY查询的临时表,然后使用ORDERBY在该表上进行选择,但我无法将它们组合起来在一起。例如,我有一个表a,可以执行这个查询:SELECTplace,count(*),sum(weight)fromagroupbyplace;我可以执行这个查询:createtemporarytableresult(placestring,countint,sumweightint);insertoverwritetableresultselectplace,count(*),sum

hadoop - 如果 INSERT OVERWRITE 的 SELECT 查询没有返回任何结果,有没有办法防止 Hive 表被覆盖

我正在开发一个批处理作业,将数据从HDFS文件加载到Hive表中。数据流向如下使用外部Hive表读取HDFS中接收到的文件从应用某些转换的外部Hive表中插入覆盖最终的Hive表将收到的文件移动到存档如果输入目录中有一个文件供外部表在步骤1中读取,则此流程工作正常。如果没有文件,外部表将为空,因此执行步骤2将清空最终表。如果外部表为空,我想保留最终表中的现有数据(上次执行时加载的数据)。是否有我可以设置的配置单元属性,以便仅当我们用某些数据覆盖最终表时才覆盖它?我知道我可以使用HDFS命令检查输入文件是否存在,并有条件地启动Hive请求。但我想知道我是否可以直接在Hive中实现相同的行

sql - SELECT 子句中不存在聚合函数时的 GROUP BY 行为

我有一个表emp,其结构和数据如下:namedeptsalary---------------Jacka2Jilla1Tomb2Fredb1当我执行以下SQL时:SELECT*FROMempGROUPBYdept我得到以下结果:namedeptsalary---------------Jilla1Fredb1服务器根据什么决定返回Jill和Fred并排除Jack和Tom?我正在MySQL中运行此查询。注意1:我知道查询本身没有意义。我正在尝试调试“GROUPBY”场景的问题。我正在尝试了解此目的的默认行为。注意2:我习惯于编写与GROUPBY子句相同的SELECT子句(减去聚合字段)。

sql - SELECT 子句中不存在聚合函数时的 GROUP BY 行为

我有一个表emp,其结构和数据如下:namedeptsalary---------------Jacka2Jilla1Tomb2Fredb1当我执行以下SQL时:SELECT*FROMempGROUPBYdept我得到以下结果:namedeptsalary---------------Jilla1Fredb1服务器根据什么决定返回Jill和Fred并排除Jack和Tom?我正在MySQL中运行此查询。注意1:我知道查询本身没有意义。我正在尝试调试“GROUPBY”场景的问题。我正在尝试了解此目的的默认行为。注意2:我习惯于编写与GROUPBY子句相同的SELECT子句(减去聚合字段)。

hadoop - HIVE: 'LIMIT' 上的 'SELECT * from' 如何在后台工作?

只是想知道以下简单查询的限制是如何工作的select*fromTlimit100假设表T有1300万条记录请问上面的查询:1.先将1300万全部加载到内存中,只显示结果集中的100条记录?2.只加载100条结果集100条记录现在已经搜索它很长一段时间了,大多数页面只谈论使用“LIMIT”而不是Hive如何在幕后处理它。感谢任何有用的回复。 最佳答案 Ifnooptimizerapplied,hiveendupscanningentiretable.ButHiveoptimizesthiswithhive.fetch.task.con

mysql - 如何改进 INSERT INTO ... SELECT 锁定行为

在我们的生产数据库中,我们每小时运行以下伪代码SQL批处理查询:INSERTINTOTemporaryTable(SELECTFROMHighlyContentiousTableInInnoDbWHEREallKindsOfComplexConditionsaretrue)现在这个查询本身不需要很快,但我注意到它锁定了HighlyContentiousTableInInnoDb,即使它只是从中读取。这使得其他一些非常简单的查询需要大约25秒(这是其他查询需要多长时间)。然后我发现在这种情况下InnoDB表实际上是被SELECT锁定的!https://www.percona.com/bl

mysql - 如何改进 INSERT INTO ... SELECT 锁定行为

在我们的生产数据库中,我们每小时运行以下伪代码SQL批处理查询:INSERTINTOTemporaryTable(SELECTFROMHighlyContentiousTableInInnoDbWHEREallKindsOfComplexConditionsaretrue)现在这个查询本身不需要很快,但我注意到它锁定了HighlyContentiousTableInInnoDb,即使它只是从中读取。这使得其他一些非常简单的查询需要大约25秒(这是其他查询需要多长时间)。然后我发现在这种情况下InnoDB表实际上是被SELECT锁定的!https://www.percona.com/bl

hadoop - 我可以通过在 Hive 中通过 "CREATE TABLE AS SELECT....."创建的表进行聚类/分桶吗?

我正在尝试在Hive中创建一个表CREATETABLEBUCKET_TABLEASSELECTa.*FROMTABLE1aLEFTJOINTABLE2bON(a.key=b.key)WHEREb.keyISNUllCLUSTEREDBY(key)INTO1000BUCKETS;此语法失败-但我不确定是否可以执行此组合语句。有任何想法吗? 最佳答案 遇到这个问题,发现没有提供答案。我进一步查看并在Hive文档中找到了答案。这永远行不通,因为CTAS有以下限制:目标表不能是分区表。目标表不能是外部表。目标表不能是列表分桶表。来源:htt

mysql SELECT IF 语句与 OR

以下工作-当退款等于1时返回Y,否则默认为NIF(fd.charge_back=1,'Y','N')AScharge_back但是我似乎无法让这个工作?语法是否有效IF(compliment=('set'OR'Y'OR1),'Y','N')AScustomer_compliment 最佳答案 大概这会起作用:IF(compliment='set'ORcompliment='Y'ORcompliment=1,'Y','N')AScustomer_compliment 关于mysqlSELE

mysql SELECT IF 语句与 OR

以下工作-当退款等于1时返回Y,否则默认为NIF(fd.charge_back=1,'Y','N')AScharge_back但是我似乎无法让这个工作?语法是否有效IF(compliment=('set'OR'Y'OR1),'Y','N')AScustomer_compliment 最佳答案 大概这会起作用:IF(compliment='set'ORcompliment='Y'ORcompliment=1,'Y','N')AScustomer_compliment 关于mysqlSELE