lists.zerezo.com
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
***BOGO*** Is there a GROUP function that can help me with this?
- Date: Sat, 23 Aug 2008 00:00:47 -0400
- From: "David Perron" <david.perron@xxxxxxxxx>
- Subject: ***BOGO*** Is there a GROUP function that can help me with this?
Hi MySQL Users-
I have a query problem I have been working on for quite some time and I am
really at a loss to find a native function(s) to handle my task.
I have this table:
CREATE TABLE BookCategoryMetrics (
BookName VARCHAR(255),
CategoryId VARCHAR(128),
RatingSum DOUBLE,
Cost DOUBLE,
PRIMARY KEY (BookName,CategoryId)
);
There is a 1:1 relationship between BookName and CategoryId.
There are approximately 2 million unique values for BookName and 100 unique
values for CategoryId.
My goal is to create a report, that lists the Top 100 most expensive
BookNames, for every CategoryId in this table.
Obviously, I could write a wrapper script to loop through the CategoryId and
pass them 1 at a time to this query to get the results, but this is
obviously not the most efficient.
SELECT
BookName,
CategoryId,
SUM(Cost) as TotalCost
FROM BookCategoryMetrics
WHERE CategoryId = 100
GROUP BY BookName,CategoryId
ORDER BY TotalCost DESC
LIMIT 100;
Is there even a way to do this with straight MySQL, or is this a candidate
for some kind of stored procedure?
Thank you for any guidance!
David