Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How get the sum for every distinct value in another column?

Suppose my table contains the following:

ID    price    
-------------
 1     10      
 1     10      
 2     20      
 2     20      
 3     30
 3     30

Each time through a while loop. I want to get the sum of the values on price but only once for every distinct value in ID

So given the example above, I would arrive with something like:

ID    price    
-------------
 1     20          
 2     40           
 3     60

Just to add, I may have stumble upon a post with a similar inquiry. Problem is that other post uses Oracle, I on the other hand am using MySQL.

like image 209
Angelo Tan Avatar asked Sep 18 '11 21:09

Angelo Tan


People also ask

How do I sum a column of distinct values in SQL?

The SQL Server SUM() function is an aggregate function that calculates the sum of all or distinct values in an expression. In this syntax: ALL instructs the SUM() function to return the sum of all values including duplicates. ALL is used by default.

How do I sum values based on criteria in another column in MySQL?

You can use the SUM() function in a SELECT with JOIN clause to calculate the sum of values in a table based on a condition specified by the values in another table.

How do you sum duplicate values in SQL?

You can specify either ALL or DISTINCT modifier in the SUM() function. The DISTINCT modifier instructs the SUM() function to calculate the total of distinct values, which means the duplicates are eliminated. The ALL modifier allows the SUM() function to return the sum of all values including duplicates.


1 Answers

You need GROUP BY and SUM

SELECT ID, 
       SUM(price) AS price
FROM YourTable
GROUP BY ID
like image 123
Martin Smith Avatar answered Oct 19 '22 19:10

Martin Smith