sql - 最大值的平均值
问题描述
我是 sql 新手,并试图找到类似的主题,但没有成功。如果有人可以提供帮助,我将非常感激:-)
这是大代码的一小部分,它基于 Group by 1 列“CustomerID”(我不需要更多!)。我需要每年计算 [Field] 的最大值,然后得出这些 MAX 值的平均值。
SELECT
t0.[CustomerID]
,MAX(t0.[CustomerName]) as 'CustomerName'
,SUM(CASE WHEN t0.[Year] = 2021 then t0.[SalesValue_USD] END) as 'Sales_USD_2021'
,SUM(t0.[SalesValue_USD]) as 'Sales_USD_total'
,AVG(MAX(t0.[Field]) OVER (PARTITION BY [Year])) as 'Field_avr'
From market t0
Where [Year] in (2019,2020,2021)
Group by t0.[CustomerID]
解决方案
您可以分两步完成
SELECT [CustomerID],
MAX('CustomerName') as 'CustomerName',
SUM('Sales_USD_2021') as 'Sales_USD_2021',
SUM('Sales_USD_total') as 'Sales_USD_total',
AVG(Field_max) as 'Field_avr'
FROM (
SELECT
t0.[CustomerID], t0.[Year]
,MAX(t0.[CustomerName]) as 'CustomerName'
,SUM(CASE WHEN t0.[Year] = 2021 then t0.[SalesValue_USD] END) as 'Sales_USD_2021'
,SUM(t0.[SalesValue_USD]) as 'Sales_USD_total'
,MAX(t0.[Field]) as 'Field_max'
From market t0
Where [Year] in (2019,2020,2021)
Group by t0.[CustomerID], t0.[Year] ) t
Group by [CustomerID]
推荐阅读
- python - 连接到 AWS Aurora 集群时偶尔出现“名称解析暂时失败”
- php - 使用php在数组中获取特定列值的问题
- php - 如何使用我的 secugen 扫描仪指纹结果对 *.WSQ 文件进行身份验证?
- reactjs - 使用 React/JSX 获取 API 数据时出现问题
- node.js - 等待承诺:NodeJS + Express
- angular - Object(..) 不是函数
- c# - 剑道图的服务器端渲染
- firebase - 在谷歌云中的安全规则之后,cluase 在哪里不起作用
- ios - tvOS 上的 UISwipeGestureRecognizer 给了我一个 EXC_BAD_ACCESS
- javascript - React/Material-UI 如何导入 Slider 组件