标签: vertica

在Vertica中查询完成时如何显示查询时间?

使用vsql时,我想看看查询完成后运行多长时间.例如,当我运行:

select count(distinct key) from schema.table;
Run Code Online (Sandbox Code Playgroud)

我希望看到如下输出:

5678
(1 row)
total query time: 55 seconds.

如果这是不可能的,还有另一种方法来衡量查询时间吗?

sql vertica vsql

5
推荐指数
1
解决办法
8467
查看次数

为什么像Vertica/InfoBright/GreenPlum这样的面向列的数据库会对Hadoop大做文章?

为Hadoop集群提供数据并使用该集群将数据输入Vertica/InfoBright数据仓库有什么意义?

所有这些供应商都在说"我们可以与Hadoop联系",但我不明白这是什么意思.在Hadoop中存储并转移到InfoBright有什么兴趣?为什么不将应用程序直接存储在Infobright/Vertica DW中?

谢谢 !

hadoop vertica greenplum infobright

5
推荐指数
2
解决办法
6066
查看次数

Vertica SQL中的Concat GROUP BY

我需要以逗号分隔的id列表作为凌乱的第三方api的字段:s这是我想要实现的简化版本.

| id | name |
|====|======|
| 01 | greg |
| 02 | paul |
| 03 | greg |
| 04 | greg |
| 05 | paul |

SELECT name, {some concentration function} AS ids
FROM table
GROUP BY name
Run Code Online (Sandbox Code Playgroud)

返回

| name | ids        |
|======|============|
| greg | 01, 03, 04 |
| paul | 02, 05     |
Run Code Online (Sandbox Code Playgroud)

我知道MySQL有CONCAT_GROUP函数,我希望在没有安装更多函数的情况下解决这个问题,因为环境.也许我可以使用OVER语句解决这个问题?

sql vertica

5
推荐指数
2
解决办法
8777
查看次数

如何在没有ARRAY_AGG的情况下获取GROUP BY中的第一个(或任何单个)值?

我迁移一些SQL和PostgreSQL 9.2至7.0 Vertica的,我可以利用一些帮助的Postgres更换的冷静ARRAY_AGG的东西,功能Vertica的(可能还有其他RDBMS)支持,如分区和窗口功能.我是这些功能的新手,我真的很感激你的想法.

使用array_agg(sql fiddle demo)的(工作)查询:

SELECT B.id, (array_agg(A.X))[1]
FROM B, AB, A
WHERE B.id = AB.B_id AND A.id = AB.A_id AND A.X IS NOT NULL
GROUP BY B.id;
Run Code Online (Sandbox Code Playgroud)

如果我试图在没有聚合的情况下天真地选择AX(即,让RDBMS选择 - 实际上与MySQL和SQLite一起工作),postgres抱怨.运行相同的查询但使用"AX"而不是"(array_agg(AX))1 ":

ERROR:  column "a.x" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: SELECT B.id, A.X
Run Code Online (Sandbox Code Playgroud)

我正在考虑尝试一个窗口函数,例如,从这个问题:

SELECT email, FIRST_VALUE(email) OVER (PARTITION BY email)
FROM questions
GROUP BY email;
Run Code Online (Sandbox Code Playgroud)

但我得到同样的错误:

SELECT B.id, …
Run Code Online (Sandbox Code Playgroud)

sql postgresql group-by aggregate-functions vertica

5
推荐指数
1
解决办法
5139
查看次数

SQL Runnnig多次执行同一查询

我有一个查询,该查询为我提供了两个日期start_date和end_date之间的COUNT,并按各个列进行了分组。有什么办法可以让我每天获得COUNT个?就像说start_date是date1和end_date是date5一样,因此我需要对“ date1到date2”,“ date1到date3”,“ date1到date4”,然后“ date1到date5”运行一次查询。是否像基于开始日期和结束日期多次运行同一查询?我的查询看起来像

Select COUNT(A), B, C, D
FROM TABLE 
WHERE CONDITION1 AND DATE BETWEEN start_date AND end_date
GROUP BY B, C, D
Run Code Online (Sandbox Code Playgroud)

sql sqlclient vertica vsql

5
推荐指数
1
解决办法
1755
查看次数

从一列定义的组中选择最小值/最大值作为另一列的子组 - SQL、HPVertica

我试图在另一个组的子组中找到最小和最大日期。这是示例“数据”

ID   Type  Date
1     A    7/1/2015
1     B    1/1/2015
1     A    8/5/2014
22    B    3/1/2015
22    B    9/1/2014
333   A    8/1/2015
333   B    4/1/2015
333   B    3/29/2014
333   B    2/28/2013
333   C    1/1/2013
Run Code Online (Sandbox Code Playgroud)

我想确定的是 - 在一个 ID 中,每个相似类型块的最小/最大日期是多少?所以对于 ID # 333,我想要以下信息:

A: min & max = 8/1/2015
B: min = 2/28/2013
   max = 4/1/2015
C: min & max = 1/1/2013
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何在一组 ID 中仅识别不间断的 Type 分组。对于 ID #1,我需要保留两个具有单独最小/最大日期的“A”类型,因为它们被类型“B”分割,所以我不能只为 ID #1 提取所有类型 A 的最小日期,它必须是两个单独的实例。

我尝试过的是类似于下面两行的内容,但是这两行都没有准确捕获上面提到的 ID #1 类型 B 中断类型 A …

sql max min vertica partition

5
推荐指数
0
解决办法
1754
查看次数

使用 SQL 计算组大小的比率

考虑一个简单的 group by 查询:

select foo, count(*)
    from mytable where bar=10 
group by foo
Run Code Online (Sandbox Code Playgroud)

这将返回一个具有以下形式的表:

foo | count
----+------
a   | 100
b   | 200
c   | 300
Run Code Online (Sandbox Code Playgroud)

我的目标是使用单个查询获得下表:

foo | count | ratio
----+-------+-------
a   | 200   | 18.2
b   | 300   | 27.3
c   | 600   | 54.5
Run Code Online (Sandbox Code Playgroud)

在实践中,我有更多可能的值,foo因此这里的答案没有帮助。此外,并不是将比率四舍五入并乘以 100。

这样做的最佳做法是什么?

sql vertica

5
推荐指数
1
解决办法
2184
查看次数

聚合函数以在Vertica中连接字符串

在vertica中有一个表:像这样测试:

ID     |   name
1      |    AA
2      |    AB
2      |    AC
3      |    AD
3      |    AE
3      |    AF
Run Code Online (Sandbox Code Playgroud)

如何使用聚合函数或如何编写查询以获取像这样的数据(vertica语法)?

ID    |  ag
1     |  AA
2     |  AB, AC
3     |  AD, AE, AF 
Run Code Online (Sandbox Code Playgroud)

sql aggregate vertica

5
推荐指数
1
解决办法
3190
查看次数

SQL查询以特定顺序发生的事件

我有下表:

+--------+-------+------+--+
| Object | Event | Time |  |
+--------+-------+------+--+
| Obj1   | A     |    1 |  |
| Obj1   | B     |    3 |  |
| Obj2   | A     |    7 |  |
| Obj2   | B     |    4 |  |
+--------+-------+------+--+
Run Code Online (Sandbox Code Playgroud)

我的目标是获取所有同时发生事件A和B的对象,条件是A首先发生(及时)。到目前为止,我只想出查询来查找所有具有A和B的对象,而没有包括时间:

SELECT DISTINCT Object 
FROM
    (SELECT * 
     FROM
         (SELECT * 
          FROM table
          INNER JOIN 
              (SELECT Object Obj 
               FROM table 
               WHERE event LIKE '%A%' AS temp_table) ON table.Object = temp_table.Obj) AS temp_final 
     WHERE event LIKE '%B%') AS …
Run Code Online (Sandbox Code Playgroud)

sql vertica

5
推荐指数
1
解决办法
891
查看次数

如何查看 SPARK 发送到我的数据库的 SQL 语句?

我有一个 Spark 集群和一个 vertica 数据库。我用

spark.read.jdbc( # etc
Run Code Online (Sandbox Code Playgroud)

将 Spark 数据帧加载到集群中。当我执行某个 groupby 功能时

df2 = df.groupby('factor').agg(F.stddev('sum(PnL)'))
df2.show()
Run Code Online (Sandbox Code Playgroud)

然后我得到一个 vertica 语法异常

Driver stacktrace:
    at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1454)
    at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1442)
    at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1441)
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
    at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1441)
    at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:811)
    at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:811)
    at scala.Option.foreach(Option.scala:257)
    at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:811)
    at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1667)
    at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1622)
    at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1611)
    at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48)
    at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:632)
    at org.apache.spark.SparkContext.runJob(SparkContext.scala:1890)
    at org.apache.spark.SparkContext.runJob(SparkContext.scala:1903)
    at org.apache.spark.SparkContext.runJob(SparkContext.scala:1916)
    at org.apache.spark.sql.execution.SparkPlan.executeTake(SparkPlan.scala:347)
    at org.apache.spark.sql.execution.CollectLimitExec.executeCollect(limit.scala:39)
    at org.apache.spark.sql.Dataset$$anonfun$org$apache$spark$sql$Dataset$$execute$1$1.apply(Dataset.scala:2193)
    at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:57)
    at org.apache.spark.sql.Dataset.withNewExecutionId(Dataset.scala:2546)
    at org.apache.spark.sql.Dataset.org$apache$spark$sql$Dataset$$execute$1(Dataset.scala:2192)
    at org.apache.spark.sql.Dataset.org$apache$spark$sql$Dataset$$collect(Dataset.scala:2199)
    at org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:1935)
    at org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:1934)
    at org.apache.spark.sql.Dataset.withTypedCallback(Dataset.scala:2576)
    at org.apache.spark.sql.Dataset.head(Dataset.scala:1934) …
Run Code Online (Sandbox Code Playgroud)

vertica apache-spark pyspark pyspark-sql

5
推荐指数
1
解决办法
3516
查看次数