sql - 来自 2 个表的平均函数
问题描述
我是 SQL 的新手,我希望从两个查询中获得一个 AVG 函数(按组加入一个查询)。
我的查询模板。
WITH group1 AS (
SELECT
ID AS ID
,date AS date
,TYPE AS TYPE
,GROUP_M AS GROUP_M
,Value AS Value
,AVG (NULLIF( Value , 0)) OVER (PARTITION BY TYPE ) AS TYPE_AVG
FROM
(
SELECT
a4.id AS ID
,a0.data AS date
,GET_ATTRIBUTE_VALUE ( a12.attributes , Upper('TYPE'), '=') AS TYPE
,GET_ATTRIBUTE_VALUE ( a12.attributes , Upper('GROUP_M'), '=') AS GROUP_M
,a4.value AS Value
,a12.attributes AS attributes
FROM
SESSION a2
LEFT JOIN P_id a0 ON a0.id = a2.id
INNER JOIN P_SET a3 ON a3.id = a2.id
WHERE
a2.name = 'REVIEW'
AND a2.test_name = '4M'
AND a0.data >= TRUNC(SYSDATE) - 7
)
),
group2 AS (
SELECT
,wch.id AS E_id
,e.entity AS Entity
FROM
F_machine wch
INNER JOIN F_Entity e ON e.entity = wch.entity
INNER JOIN F_Run_card lrc ON lrc.lotoperkey = wch.lotoperkey
INNER JOIN F_Route r ON r.route=lrc.route AND r.facility = lrc.facility AND r.latest_version = 'Y'
WHERE
e.entity Like 'E%'
AND e.entity Is Not Null
AND wch.end_time >= TRUNC(SYSDATE) - 14
)
SELECT *
FROM group1
JOIN group2 ON group1.id = group2.E_id
;
我的最终目标是再增加一列 - 按机器和类型计算的平均值
AVG (NULLIF( {value} , 0)) OVER (PARTITION BY {machine} , {TYPE} )
谢谢,希望一切都清楚:)
解决方案
推荐阅读
- java - 如果我们有反射,为什么我们在 Java 中使用 private
- python-2.7 - 如何在 python 中求解 $\mathbf{Z}_p$ 上的线性方程组
- c# - 在下载文件之前从 http 请求中获取文件/AssetBundle 大小
- php - 如何在php中保留特殊字符(āēīōūĀĒĪŌŪ)并避免它们转换?请不要标记为重复
- java - scala中的java.util.Date不一致增量
- nav - 如何使垂直导航栏居中?
- ms-word - 创建 MS Word 加载项:有什么方法可以消除文本输入字段中的语法/拼写建议?
- php - SQL 查询显示与 PHPMyAdmin 不同的记录数
- asp.net - JS,图像在 IIS 7.5 中无法正常工作
- azure-active-directory - Powershell 列出所有 Azure AD 用户和组