草庐IT

SQL经典50题

全部标签

sql - 如何在 Presto/Hive 中将日期格式 YYYY-MM-DD 转换为整数 YYYYMMDD?

如何在Presto/Hive中将格式为YYYY-MM-DD的日期CONVERT为整数YYYYMMDD?我正在尝试将下面的列表转换为YYYYMMDD整数WITHall_datesas(SELECTCAST(date_columnASDATE)date_columnFROM(VALUES(SEQUENCE(FROM_ISO8601_DATE('2017-07-01'),FROM_ISO8601_DATE('2017-11-15'),INTERVAL'1'DAY)))ASt1(date_array)CROSSJOINUNNEST(date_array)ASt2(date_column))我试

scala - 从配置单元表中读取并使用 spark sql 写回它

我正在使用SparkSQL读取Hive表并将其分配给scalavalvalx=sqlContext.sql("select*fromsome_table")然后我对数据框x进行一些处理,最后得到一个数据框y,它具有与表some_table完全相同的模式。最后,我试图将y数据框插入到同一个配置单元表some_table中y.write.mode(SaveMode.Overwrite).saveAsTable().insertInto("some_table")然后我得到错误org.apache.spark.sql.AnalysisException:Cannotinsertoverwri

sql - 在 Hive 中使用定界符连接多行

我需要使用“~”作为分隔符逐行连接字符串值。我有以下数据:我需要按照'row_id'的升序为每个'id'连接'Comment'列,并以'~'作为分隔符。预期输出如下:GROUP_CONCAT不是一个选项,因为它在我的Hive版本中无法识别。我可以使用collect_set或collect_list,但我无法在两者之间插入定界符。有什么解决方法吗? 最佳答案 collect_list返回数组,而不是字符串。可以使用concat_ws将数组转换为定界字符串。这会起作用,没有特定的注释顺序。selectid,concat_ws('~',c

VSCode插件 SQL Server 连接 Microsoft Server SQL

VSCode插件SQLServer连接MicrosoftServerSQL前言之前一直用SQLServerManagementStudio连接数据库,感SQLServerManagementStudio连接骤要简单一些,有时候就需要从IDE切换到数据库比较麻烦还比较消耗机器资源,so想尝试vscode连接数据库,就顺便把我的步骤记录下来。安装mssql扩展先在vscode用快捷键(Ctrl+Shift+X)打开扩展页面,输入sqlserver(mssql)点击install连接MSSQL安装好插件后,点击SQLserver(mssql)或快捷键Ctrl+Alt+D打开添加连接点击Connect

SQL:查询结果升序、降序排列

SQL:查询结果升序、降序排列前言一、orderby前言SQL查询时,查询结果按照某一列参数升序或者降序排列后再输出是常见的用法,本文主要介绍了利用orderby对输出结果进行排序的用法本文部分内容参考自:SQL37查找后多列排序SQL38查找后降序排列一、orderby一句话说明:orderby可以按照降序或者升序对检索结果进行排序强调:orderby默认按照ASC升序排列,可以选择DESC降序排列例题1:现在运营想要取出用户信息表中的年龄和gpa数据,并先按照gpa升序降序,再按照年龄降序排序输出,请取出相应数据。//升序排列ASC可以省略,降序排列DESC不可省略!SELECTdevic

sql - 错误消息 : TOK_ALLCOLREF is not supported in current context - while Using DISTINCT in HIVE

我在HIVE0.11中使用简单的命令:SELECTDISTINCT*FROMfirst_working_table;,我收到以下错误消息:FAILED:SemanticExceptionTOK_ALLCOLREFisnotsupportedincurrentcontext.有人知道为什么会这样吗?我们该如何解决?谢谢,加仑。 最佳答案 Hive不支持DISTINCT*语法。您可以手动指定表的每个字段以获得相同的结果:SELECTDISTINCTfield1,field2,....,fieldNFROMfirst_working_ta

hadoop - 显示配置单元 View 的 SQL 定义

如何以SQL形式显示配置单元View的View定义。大多数关系数据库都支持这样的命令SHOWCREATEVIEWviewname; 最佳答案 使用显示创建表。阅读hivemanual了解更多详情。 关于hadoop-显示配置单元View的SQL定义,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/24579820/

sql - 如何通过运算符(operator)从 Hive 组中获取元素数组/包?

我想按给定字段分组并获得包含分组字段的输出。以下是我要实现的目标的示例:-假设一个名为“sample_table”的表有两列,如下所示:-F1F2001111001222001123002222002333003555我想编写将提供以下输出的Hive查询:-001[111,222,123]002[222,333]003[555]在Pig中,这可以很容易地通过这样的事情来实现:-grouped_relation=GROUPsample_tableBYF1;有人可以建议在Hive中是否有一种简单的方法可以做到这一点?我能想到的是为此编写一个用户定义函数(UDF),但这可能是一个非常耗时的选

sql - 为什么 Select Count(*) 比 Hive 中的 Select * 慢

当我使用配置单元在VirtualBoxSandbox中运行查询时。我觉得Selectcount(*)比Select*慢太多了。谁能解释一下背后发生了什么?为什么会出现这种延迟? 最佳答案 select*fromtable它可以是一个只有Map的工作但是SelectCount(*)fromtable它可以是Map和Reduce作业希望这对您有所帮助。 关于sql-为什么SelectCount(*)比Hive中的Select*慢,我们在StackOverflow上找到一个类似的问题:

apache-spark - 如何在没有 hive-site.xml 的情况下将 Spark SQL 连接到远程 Hive Metastore(通过节俭协议(protocol))?

我将HiveContext与SparkSQL一起使用,并且我正在尝试连接到远程Hive元存储,设置Hive元存储的唯一方法是在类路径中包含hive-site.xml(或将其复制到/etc/spark/conf/).有没有办法在不包含hive-site.xml的情况下以编程方式在java代码中设置此参数?如果是这样,要使用什么Spark配置? 最佳答案 对于Spark1.x,您可以设置:System.setProperty("hive.metastore.uris","thrift://METASTORE:9083");finalSp