有人可以帮我解决这个Oracle查询。 这是我要求的输出。 谢谢在advanced.from下面查询返回一些我想要计算的记录 平均值表示SUM(COST + DURATION)/ No.of返回表单查询但是在查询下执行基于SITE_ID的分区我不想要任何分区,什么是想要的是什么查询返回(所有持续时间的总和+所有成本的总和/否。行返回)但没有任何分区是我能做到的任何方式
选择*来自(
SELECT ROW_NUMBER()OVER(ORDER BY 1)RN,
SITE_ID,
案例ID,
WOID,
期限,
成本
(SUM(COST + DURATION)超过(SITE_ID分区))/ COUNT为TotalCost来自
(
SELECT COUNT(*) OVER () as COUNT,
SITE_ID,
CASEID,
WOID,
ROUND(table1.duration/3600,2) AS DURATION,
ROUND(table2.duration/3600),2) AS COST
FROM table1 ) AVG
在哪里(1 = 1) ) 其中rn介于0和1000之间
答案 0 :(得分:0)
根据您修改过的问题,我认为您想要的是每个网站的COST和DURATION的总和,以及这些数据的平均值来自table1
和table2
中的条目数。这就是这个查询的作用:
select site_id
, duration
, cost
, (duration+cost)/no_of as avg_total_cost
from (
select
table1.site_id
, count(*) as no_of
, sum(round(table1.duration/3600,2)) as duration
, sum(round((table1.labor_rate * table2.duration)/3600,2)) as cost
from table1
inner join table2
on table1.id = table2.id
group by table1.site_id
)
/
以下a SQL Fiddle demo证明此查询成功运行。
您的问题似乎引用了其他表格site
和emp
,我忽略了这些表格,因为您没有为它们提供加入条件。同样,我忽略了前n个过滤器;如果你愿意,你可以把它添加回来。