devxlogo

Selecting a maximum sum from a group

Selecting a maximum sum from a group

Question:
I need to write a query that selects the maximus sum for a group from a list like the one below.

Type      ValueA         100B         200C         300A         300B         100C         342

The result should be C, 642. I tried “group by,” but I could only get the sums.

Answer:
You must use what is essentially a two-step process.

1. Use a select type,sum(value) group by type to create a summary table.
2. Obtain the row with the max value from the summary result set.

It is possible to combine these two steps into one statement using derived tables. However, internally, it is still two steps. I’ve used a view to illustrate one way of implementing the steps.

create table test(	type char,	num int)goinsert into test values('a',100)insert into test values('b',100)insert into test values('c',100)insert into test values('a',100)insert into test values('b',100)insert into test values('c',200)gocreate view vwTest asselect type,  sum(num) as "total"from testgroup by typegoselect  type,totalfrom vwTestwheretotal = (select max(total) from vwTest)

See also  lenso.ai - an AI reverse image search platform
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist