SQL Sum Function

Galaxy Glossary

How do you calculate the sum of values in a SQL table?

The SQL SUM function is used to calculate the total sum of values in a specific column of a table. It's a crucial aggregate function for summarizing data.
Sign up for the latest in SQL knowledge from the Galaxy Team!
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Description

The SUM function in SQL is a powerful tool for quickly calculating the total of numerical values within a column of a table. It's a core part of aggregate functions, which are used to perform calculations on groups of rows. Imagine you have a sales database; using SUM, you can easily find the total revenue generated in a specific month or by a particular salesperson. This function is essential for tasks like financial reporting, inventory management, and data analysis. It's particularly useful when you need to get a concise summary of a large dataset. The SUM function works by adding up all the values in the specified column, ignoring any NULL values. This is a critical point to remember, as NULLs won't contribute to the sum.

Why SQL Sum Function is important

The SUM function is crucial for summarizing data and generating reports. It allows for quick calculation of totals, which is essential for business decisions and data analysis. It's a fundamental building block for more complex queries and reports.

Example Usage


-- Using SUBSTRING and CHARINDEX (for a fixed delimiter)
DECLARE @inputString VARCHAR(100) = 'apple,banana,orange';
DECLARE @delimiter CHAR(1) = ',';
DECLARE @startIndex INT = 1;
DECLARE @endIndex INT;

WHILE @startIndex <= LEN(@inputString)
BEGIN
    SELECT @endIndex = CHARINDEX(@delimiter, @inputString, @startIndex);
    IF @endIndex = 0
        SET @endIndex = LEN(@inputString) + 1;
    SELECT SUBSTRING(@inputString, @startIndex, @endIndex - @startIndex);
    SET @startIndex = @endIndex + 1;
END;

-- Using a User-Defined Function (for more complex scenarios)
CREATE FUNCTION dbo.SplitString (@inputString VARCHAR(MAX), @delimiter CHAR(1))
RETURNS @output TABLE (value VARCHAR(MAX))
AS
BEGIN
    DECLARE @startIndex INT = 1;
    DECLARE @endIndex INT;

    WHILE @startIndex <= LEN(@inputString)
    BEGIN
        SELECT @endIndex = CHARINDEX(@delimiter, @inputString, @startIndex);
        IF @endIndex = 0
            SET @endIndex = LEN(@inputString) + 1;
        INSERT INTO @output (value) VALUES (SUBSTRING(@inputString, @startIndex, @endIndex - @startIndex));
        SET @startIndex = @endIndex + 1;
    END;
    RETURN;
END;

-- Example usage of the UDF
SELECT value FROM dbo.SplitString('apple,banana,orange', ',');
DROP FUNCTION dbo.SplitString; -- Important: Clean up after use

Common Mistakes

Want to learn about other SQL terms?