草庐IT

SQL:DML、DQL、DCL

全部标签

hadoop - 在 Impala SQL 中编写一个 While 循环?

在Impala中编写while循环的语法是什么?甚至可以写一个循环吗?我似乎无法声明变量,而且它无法将“while”识别为关键字。 最佳答案 Impala在其语法中不支持WHILE循环。引用资料:ImpalaReservedWords 关于hadoop-在ImpalaSQL中编写一个While循环?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/49523380/

SQL聚合以添加带有标志的新列

我有一个专栏Country-------CanadaIndiaUSAIndiaChinaCanada我想通过插入另一个名为M_U的列来更新此表,该列只能包含0或1如果国家多次出现=1如果国家只出现一次=0output-------Canada1India1USA0India1China0Canada1 最佳答案 这应该适合你:selecta.country,casewhenb.c>1then1else0endfromcountriesajoin(selectCountry,count(*)ascfromcountriesgroupb

sql - hive 喜欢 [0-9]

我正在尝试编写一个HIVEcase语句,其中如果一个字段包含数字8/9作为第一个字符,第二个字符包含0-9之间的任何数字,最后一个字段包含A-E之间的任何字母,则它将从字符串中删除它。我拥有的有效代码(大部分)是:CaseWhenSubstr(Upper(Trim(MBRCHR)),-3)like'9_A'orSubstr(Upper(Trim(MBRCHR)),-3)like'9_B'orSubstr(Upper(Trim(MBRCHR)),-3)like'9_C'orSubstr(Upper(Trim(MBRCHR)),-3)like'9_D'orSubstr(Upper(Trim

sql - Hive - 加载具有特殊字符的分隔数据导致关闭位置

假设我想在Hive中创建一个包含4列的简单表并加载一些竖线分隔的数据。CREATEtableTEST_1(COL1string,COL2string,COL3string,COL4string)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'|';原始数据:123|456|DasaniBottled\|Water|789我对Col3值的期望是“DasaniBottled\|Water”,中间有一些特殊字符“\|”,因此导致Hive表列关闭位置从COL3开始,因为我使用“|”作为分隔符创建表。特殊字符\|确实有一个管道|其中的字符。有什么方法可以解决这个问题,让

sql - HIVE SQL 将连续范围折叠成单行

考虑表中的以下记录:NAMEIDRATELOCDAYABCD123-5NYC2017-01-01ABCD123-5NYC2017-01-02ABCD123-6SFO2017-01-03ABCD123-6DEN2017-01-04ABCD345-4ATL2017-01-05ABCD345-4WAS2017-01-06ABCD123-7CLT2017-01-07ABCD123-7CLT2017-01-08我想要这样的输出:NAMEIDRATELOCSTARTDAYENDDAYABCD123-5NYC2017-01-012017-01-02ABCD123-6SFO2017-01-032017

sql - 在 Impala 中使用字符串或数组检查子集

我有一张这样的tablecol-----A,Bcol可以是带逗号的字符串或数组。我在存储方面具有灵active。如何检查col是另一个字符串或数组变量的子集?例如:B,A-->TRUE(顺序无关紧要)A,D,B-->TRUE(中间的其他项)A,D,C-->FALSE(缺少B)我在类型上有灵active。该变量是我无法存储在表中的内容。如果您仅对Impala(无Hive)有任何建议,请告诉我。谢谢 最佳答案 一个不太漂亮的方法,但也许是一个起点......假设一个表有一个唯一标识符列id和一个array专栏col,和一个带有','的字

sql - 在 Hive 的 LOCATION 字段中明确指定之前,不会创建数据库目录

我使用以下查询在我的首选位置(/user/hive/)创建了一个数据库。createdatabasetestlocation"/user/hive/";创建数据库后,我使用命令hadoopdfs-ls/user/在位置/user/hive/中检查了test.db目录hive。它不可用。后来我使用下面的查询创建了一个默认位置的数据库。createdatabasetest2;对于数据库test2,可以在默认仓库目录/user/hive/warehouse/下看到test2.db目录/user/hive/test.db目录是在我在LOCATION文件中明确指定它时创建的,如下所示。creat

sql - 根据日期计算某行最大值与其他行的差值

我有一个表格如下:datetable_namecount_table2018-07-19A502018-07-19B402018-07-18A252018-07-18B302018-07-17A102018-07-17B5我想计算每个日期之间的计数差异。结果表如下:date1date2table_namediff2018-07-172018-07-18A152018-07-182018-07-19A252018-07-172018-07-18B252018-07-182018-07-19B10`谢谢你的帮助 最佳答案 如果存在多个日

sql - 如何将查询答案传递给限制函数 Impala

我正尝试在impala中抽取一张table的20%。我在某处听说内置的impala采样功能有问题。有没有办法将子查询传递给impalalimit函数以对整个表进行n%的采样。我有这样的东西:select*fromtable_aorderbyrand()limit(selectround((count(distinctids))*.2,0)fromtable_a))子查询给了我所有记录的20% 最佳答案 我不确定Impala是否有特定的采样逻辑(某些数据库有)。但是你可以使用窗口函数:selecta.*from(selecta.*,r

sql - 如何获取 SQL case 语句中两个日期中的最新日期?

我有一个SQL表,需要检查两个日期中的最新日期,创建一个新列。可能有也可能没有这两个值,在这种情况下它默认为一个。我有一个这样的生产案例:+----------+----------+-----------+|device|activity|date|+----------+----------+-----------+|device1|stage|3/20/2018||device1|test|3/30/2018||device2|stage|6/1/2018||device2|test|[null]|+----------+----------+-----------+我需要得到这