【发布时间】:2014-07-15 11:46:01
【问题描述】:
我正在使用 sql server 2008 并连接了许多列以生成一个值。但是,我想汇总所有唯一交易的平均交易成本。
Concatenated values =
SELECT TOP 10 RTRIM(RTRIM(CAST(CENTER_NBR AS CHAR)) + CAST(DATEDIFF(ss, '19700101', SALES_DATE) AS CHAR(10)) +
RTRIM(CAST(REGISTER_NBR AS CHAR)) + RTRIM(CAST(TRANSACTION_NBR AS CHAR)) + CAST(BUSINESS_ENTITY AS CHAR)) AS 'TRANS_KEY'
FROM dh_Transaction_Items;
需要找到以下内容:
ROUND(AVG(CAST(ITEM_QTY AS FLOAT)), 3) AS 'AVG ITEM QTY',
ROUND(AVG(CAST(EXTENDED_PURCHASE_AMT AS FLOAT)), 3) AS 'AVG PURCHASE AMT',
ROUND(AVG(CAST(EXTENDED_SAVINGS_AMT AS FLOAT)), 3) AS 'AVG SAVINGS AMT',
ROUND(AVG(CAST(EXTENDED_COST_AMT AS FLOAT)), 3) AS 'AVG COST AMT',
ROUND(AVG(CAST(EXTENDED_MARGIN_AMT AS FLOAT)), 3) AS 'AVG MARGIN AMT'
基本上,如何将两组sql代码整合起来得到平均值。
编辑:
我想找到整个表中五列的平均值(1+ 百万行)。连接某些列的原因是因为这就是“所需的”唯一标识符。因此,AVG 应将每个“TRANS_KEY”的购买金额相加,然后除以价值总数(超过 100 万)。
【问题讨论】:
-
您将它们相加并除以 5。如果这不是您想要的,请更好地解释您真正想要的。样本数据和期望的结果真的很有帮助。
标签: sql sql-server