草庐IT

SQL:DML、DQL、DCL

全部标签

sql - 强制 Presto 维护 WHERE 子句的顺序

我正在尝试运行类似于以下查询的内容:SELECT*FROMfooWHEREcardinality(bar)>0ANDbar[1]='...';但是,我收到了查询失败:数组下标越界。我假设这是因为Presto试图通过在检查cardinality(bar)>0之前检查bar[1]='...'来优化查询。有没有办法强制Presto维持子句的顺序? 最佳答案 当我需要时,我已经通过两种方式解决了这个问题。使用theelement_atfunction而不是[]下标符号。element_at在索引超出数组末尾时返回NULL,因此您可以将示例简

mysql - SQL:如何为每行随机抽取多个值

假设我有一个表A(idstring),我需要创建一个表B(id1string,id2string)这样,B.id2是从A.id中随机抽取的。B.id1与A.id相同。例如:表A:id1234表B:id1id21213242331324144即对A中的每一个id,随机抽取A中的2个id作为新列id2。我如何使用SQL执行此操作?我更喜欢没有更换的sample。但如果id2等于id1就可以了。谢谢你帮助我! 最佳答案 一种方法是这样的:selectidasid1,(selectidfromAorderbyrand()limit1)asi

sql - pyspark获取月份的周数

我对从pyspark中的datafrme列中的月份获取周数感到困惑,例如,将我的数据框视为WeekID,DateField,WeekNUM1,01/JAN/20172,15/Feb/2017我的输出应该如下所示WeekIDm,DateField,MOF1,01/JAN/2017,12,15/FEB/2017,2我尝试使用striftime和其他我无法执行的日期函数。请帮我解决这个问题。 最佳答案 您可以组合使用to_date和date_format:frompyspark.sql.functionsimportto_date,dat

JSQLPARSER:CCJSQLPARSERUTIL.PARSE(SQL)异常;

在SQLServer2008中:/**sql1:useSubqueryAS'PIVOT'ResultSet*/SELECT*FROM(SELECTa.Station_IDstationId,b.Factor_CodefactoryCode,a.ValuevalueFROMT_Data_RealaLEFTJOINT_Bas_FactorbONa.Factor_ID=b.Id)fPIVOT(max(f.value)forf.factoryCodein(ZD,COD,SW,PH))d/**sql2:usewith*/WITHAAS(SELECTa.Station_IDstationId,b.Fact

如何捕获SQL Server的异常来控制台程序?

for(inti=0;i0)scl.Add(t.Trim());}try{int[]result=Server.ConnectionContext.ExecuteNonQuery(scl,ExecutionTypes.ContinueOnError);}catch(Exceptione){//whatever}}该程序的目的是运行多个脚本,如果失败,请捕获SQLServer抛出的异常,然后继续运行其余的脚本。为了尝试,插入权限已从DB中获取,因此第一个查询(插入查询)在手动执行SQLServer时将失败,因为INSERTPERMISSION被带走以下错误TheINSERTpermissionw

sql - Hive 中是否有更简单的方法将不同的 JSON 键合并为一个?

我正在尝试使用Hive解析json字符串,我注意到某些值有两个不同的键,例如:get_json_object(json_string,'$.user_name')get_json_object(json_string,'$.User_Name')有没有办法检查一个或另一个键是否存在,然后将值插入到解析表中?我当前的脚本选择两者并插入到一个表中,然后另一个脚本检查其中一个键的值是否为空并执行casewhen语句。 最佳答案 selectcoalesce(get_json_object(json_string,'$.user_name'

hadoop - Phoenix sql 查询不适用于大型数据集

我在hbase中有500万条记录,并试图找到记录的总数,然后我在使用phoenix命令行时遇到以下错误。Error:org.apache.phoenix.exception.PhoenixIOException:Failedtogetresultwithintimeout,timeout=60000ms(state=08000,code=101)org.apache.phoenix.exception.PhoenixIOException:org.apache.phoenix.exception.PhoenixIOException:Failedtogetresultwithintim

hadoop - Impala 是否支持用 Impala SQL(不是 C++ 或 Java)编写的用户定义函数?

Impala确实支持UDFswritteninC++orJava,但我有一个由内置函数调用组成的简单公式。我需要在我的代码中使用很多次并且我不想重复它。是否支持类似于以下伪代码的内容?--UDFdefinitionCREATEFUNCTIONget_date_string(datetimep_value)ASRETURNyear(p_value)*10000+month(p_value)*100+day(p_value);--UDFcallSELECTget_date_string(CreatedOn)FROMPosts;更新:Hive支持这样的UDF——它们被称为macros但我发现

SQL 按 map-reduce 中的等价物分组

我运行的大多数查询都采用这种格式:SELECTCOUNT(*),A.a1FROMAWHEREA.a2='x'GROUPBYA.a1A表是一个包含csv文件的hdfs文件夹。因为hive慢得离谱,我如何在map-reduce中实现这个查询?谢谢 最佳答案 您的SQL查询可以映射到MapReduce的HelloWorld等效项:WordCount。我怀疑自定义实现是否可以比Hive(编译为MapReduce)快得多,但这是如何做到的:TextInputFormat->(pos,line)(pos,line)->Mapper:解析/标记行

hadoop - 如何使用 hive/spark-sql 生成大数据集?

例如生成序号在1到1G之间的1G记录。 最佳答案 创建分区种子表createtableseed(iint)partitionedby(pint)用序列号在0到999之间的1K记录填充种子表。每条记录都被插入到不同的分区中,因此位于不同的HDFS目录中,更重要的是-在不同的文件中。附言需要以下集合sethive.exec.dynamic.partition.mode=nonstrict;sethive.exec.max.dynamic.partitions.pernode=1000;sethive.hadoop.supports.sp