Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Obvient BI工具需要SQL AVG()的替代品_Sql_Oracle - Fatal编程技术网

Obvient BI工具需要SQL AVG()的替代品

Obvient BI工具需要SQL AVG()的替代品,sql,oracle,Sql,Oracle,我正在从1个表中读取2个字段 StartKey和Mins 下图在左边显示了我当前的输出结果,在右边显示了我需要的内容。 这是我的问题 Select StartKey, Duration as Mins From TableA Where Flag = 0 Order by StartKey 我知道我可以使用avg(duration),但如果我使用它,我正在使用的用于编写和显示查询的软件Obvient不会让我计算列Mins avg本身的平均值 手动在CS文件

我正在从1个表中读取2个字段

StartKey和Mins

下图在左边显示了我当前的输出结果,在右边显示了我需要的内容。

这是我的问题

Select
       StartKey,
       Duration as Mins
From   TableA
Where  Flag = 0
Order by StartKey
我知道我可以使用
avg(duration)
,但如果我使用它,我正在使用的用于编写和显示查询的软件Obvient不会让我计算列Mins avg本身的平均值

手动在CS文件中插入列的平均代码,然后尝试编辑列属性后出现此错误。

我似乎遗漏了什么,但要获得您想要的结果,这应该是可行的:

Select
       StartKey,
       AVG(Duration) as Mins
From   TableA
Where  Flag = 0
Group By StartKey
Order by StartKey
还有

如果您的目标是从上述查询中获取平均值(分钟),则可以使用子查询返回:

Select AVG(Mins)
FROM (
   SELECT
       StartKey,
       AVG(Duration) as Mins
    From   TableA
    Group By StartKey
    ) t
以下是:


祝你好运。

我好像错过了什么,但要得到你想要的结果,这应该是可行的:

Select
       StartKey,
       AVG(Duration) as Mins
From   TableA
Where  Flag = 0
Group By StartKey
Order by StartKey
还有

如果您的目标是从上述查询中获取平均值(分钟),则可以使用子查询返回:

Select AVG(Mins)
FROM (
   SELECT
       StartKey,
       AVG(Duration) as Mins
    From   TableA
    Group By StartKey
    ) t
以下是:


祝你好运。

首先,让我确定我了解你的问题

您正在使用本文中的SQL,同时在Obvient中构建了一个似乎是商业智能平台的东西。您遇到的问题是无法在Obvient中对SQL查询中的平均值列执行平均值函数


如果这是正确的,您应该使用SQL查询在数据库中创建一个视图,该视图应显示为表,并允许您执行平均功能。由于从未使用过Obvient,我不能肯定这会解决您的问题,但请尝试一下,让我们知道这对您的效果。

首先,让我确定我了解您的问题

您正在使用本文中的SQL,同时在Obvient中构建了一个似乎是商业智能平台的东西。您遇到的问题是无法在Obvient中对SQL查询中的平均值列执行平均值函数



如果这是正确的,您应该使用SQL查询在数据库中创建一个视图,该视图应显示为表,并允许您执行平均功能。我不能肯定这会解决您从未使用过Obvient的问题,但请尝试一下,让我们知道这对您是如何起作用的。

您是否将GROUP BY与avg一起使用?那么持续时间的数据类型是什么?它看起来是一个数字,因此
avg(duration)
应该可以工作。我假设
duration
mins
是相同的,因为你的问题根本不清楚……是的,我使用了Avg(duration)然后按startkey分组,但是如果我使用这个,我不能使用内置工具来计算整个列本身的平均值。@Ben我已经修复了我的查询,请执行ALOK,持续时间只是显示类型
number
您是否将GROUP BY与avg一起使用?那么持续时间的数据类型是什么?它看起来是一个数字,因此
avg(duration)
应该可以工作。我假设
duration
mins
是相同的,因为你的问题根本不清楚……是的,我使用了Avg(duration)然后按startkey分组,但是如果我使用这个,我不能使用内置工具来计算整个列本身的平均值。@Ben我已经修复了我的查询,请执行ALOK,持续时间只是显示type
number
Hi,我目前正在使用您发布的内容,但如果我使用AVG(持续时间),我正在编写查询的软件将不允许我计算列分钟(持续时间)的平均值。有没有办法做到这一点?你想要的输出是什么?我已经在上面添加了SQL FIDLE。@Mowgli,您使用的是哪种软件?如果有办法在不使用avg的情况下计算startkey的平均值,这将解决我的问题。好吧,可能会有一个更优雅的解决方案,因为我累了,但您始终可以运行第一个查询并合并第二个查询的结果(只需在第二个查询中添加一个空白列)。也许我仍然有误解,但这会产生类似于您最新图片的结果。您好,我目前使用的是您发布的内容,但如果我使用AVG(持续时间),我正在编写查询的软件将不允许我计算列分钟(持续时间)的平均值。有什么方法可以做到这一点吗?您想要的输出是什么?我已经在上面添加了SQL FIDLE。@Mowgli,您使用的是哪种软件?如果有方法可以在不使用avg的情况下计算startkey的平均值,这将解决我的问题。嗯,可能有一个更优雅的解决方案,因为我越来越累了,但您可以始终运行第一个查询并合并r第二个查询的结果(只需在第二个查询中添加一个空白列)。也许我仍然有误解,但这会产生类似于您最新图片的结果。您是正确的…谢谢,我一定会尝试。这就是我最终要做的。我在发布原始内容时编写了查询,没有avg()函数,我使用内置函数取整个列的平均值(它在某个文件中生成代码(C程序代码),我将该代码保存在另一个文件中),所以在我用代码求平均值之后,我在我的查询中添加了一个函数,该函数对startkey求平均值,我只是再次转到它生成的文件,并将C代码粘贴到其中,它对我起了作用。如果我试图编辑生成的文件,我会发布它给我的图像错误(给出错误,因为Obvient不支持带有group by的avg()我有点过度编写了C文件。所以Obvient以C程序的形式生成报告?是的,但大多数后端Obvient用户不会知道这一点,因为他们所做的只是在Obvient软件中编写查询,它发布在web上。检查我上传的上一个错误图像,这是ORA错误。你是正确的……谢谢,我一定会尝试。这就是我最终所做的。我在发布原始数据时编写了查询,没有使用avg()函数,我使用build函数对整个列进行平均(它在某个文件(C程序代码)中生成代码,我将该代码保存在另一个文件中),所以在我使用代码进行平均后,我在我的