Home > Enterprise >  How to take a sum of a sum in SQL?
How to take a sum of a sum in SQL?

Time:01-09

I have the following data that I need to get a sum of a sum.

Item_Number Work_Order_Number QTY
X-1 11 10
X-1 11 10
X-1 11 10
X-1 121 15
X-1 121 15
X-1 121 15
X-1 131 20
X-1 131 20
X-1 131 20

The problem with this data is the repetition.

I used the following code to clean it up a bit.

SELECT 
    Item_Number,
    Work_Order_Number,
    SUM(Qty) AS QTY,
    COUNT(Work_Order_ID) AS Count
FROM table
WHERE Item_Number = 'X-1' 
GROUP BY Item_Number, Work_Order_Number

To get the following:

Item_Number Work_Order_Number QTY Count
X-1 11 30 3
X-1 121 45 3
X-1 131 60 3

How can I change to code to get the following:

Item_Number Total_Quantity
X-1 45

I have tried using this:

SELECT 
    Item_Number,
    Work_Order_Number,
    SUM(Qty) AS QTY,
    COUNT(Work_Order_ID) AS Count
    SUM(SUM(Qty)/COUNT(Work_Order_ID)) AS Total_Quantity
FROM table1
WHERE Item_Number = 'X-1' 
GROUP BY Item_Number

CodePudding user response:

To me it looks like you want the total average quantity.

SELECT 
  Item_Number
, SUM(AverageQuantity) AS Total_Quantity
FROM
(
  SELECT 
    Item_Number
  , Work_Order_Number
  , AVG(Qty) AS AverageQuantity
  FROM table1
  WHERE Item_Number = 'X-1' 
  GROUP BY Item_Number, Work_Order_Number
) q
GROUP BY Item_Number
Item_Number Total_Quantity
X-1 45.0000

db<>fiddle here

CodePudding user response:

SELECT Item_Number,
       SUM(QTY) / COUNT(Item_Number) AS Total_Quantity
FROM
  (SELECT 
      Item_Number,
      SUM(Qty) AS QTY
  FROM table
  WHERE Item_Number = 'X-1' 
  GROUP BY Item_Number, Work_Order_Number) T
GROUP BY Item_Number

CodePudding user response:

I understood that you want to get total of a column, if so here is the query.

SELECT SUM(Qty) AS totalQuantiy FROM table1;

If data type is Varchar use COUNT function.

  •  Tags:  
  • Related