Calculate Weighted Average in sql for duplicate items

瘦欲@ 提交于 2019-12-13 05:46:48

问题


TABLE

ITEM |  SKU  |  QUANT  |      ITEM LANDING
-----+-------+---------+-----------------
ABC  | A-B-C |     5   |         500  
ABC  | A-B-C |    10   |         400  
DEF  | D-E-F |     5   |         200  
GHI  | G-H-I |     6   |         300  
JKL  | J-K-L |     5   |         800  
JKL  | J-K-L |    10   |         600 

RESULT

ITEM NAME | ITEM SKU  | QUANT  |  Weighted Average
----------+-----------+--------+---------------------
  ABC     |    A-B-C  |   15   |      433.33  
  DEF     |    D-E-F  |    5   |      200  
  GHI     |    G-H-I  |    6   |      300  
  JKL     |    J-K-L  |   15   |      666.66  

I want to calculate weighted average for duplicate items
((first landing *qty)+(second landing *qty))/(sum(qty)


回答1:


SELECT ITEMNAME, ITEMSKU, SUM(QUANT), SUM(QUANT * ITEM_LANDING) / SUM(QUANT)
FROM <YourTable>
GROUP BY ITEMNAME, ITEMSKU



回答2:


Try this...

QUERY

SELECT item_name AS 'ITEM NAME',
item_sku AS ' ITEM SKU', 
SUM(quant) AS 'QUANT',
(SUM(quant*item_landing)/sum(quant)) AS 'ITEM LANDING'
FROM items
GROUP BY item_name;

SQL FIDDLE



来源:https://stackoverflow.com/questions/25010629/calculate-weighted-average-in-sql-for-duplicate-items

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!