Scott Klarenbach <[EMAIL PROTECTED]> wrote on 05/26/2005 04:25:22 
PM:

> Can I select the maximum value across multiple columns?
> 
> ie, I'd like to select the highest value of buyCost AND sellCost in a
> table...where buy and sell are two different columns in the same
> table.
> 
> i actually have 4 comparisons to run, and don't want to have to
> execute 4 queries.
> 

Short answer: YES

Long answer:
Let's imagine you are running a message board and you wanted to know some 
statistics about how busy your board is. Continue to imagine that you 
store each message as a row in a table called messages:

CREATE TABLE messages (
ID int unsigned auto_increment primary key
, from_user_id int unsigned
, to_user_id int unsigned
, msgdate datetime
, msgsize int unsigned
, msg TEXT
);

To get some absolute information about messages (all messages as one 
group):

SELECT min(msg_date) as firstmsg
        , max(msg_date) as lastmsg
        , min(msg_size) as smallestmsg
        , max(msg_size) as longestmsg
        , avg(msg_size) as avgmsg
        , sum(msg_size) as totalmsg
        , count(msg_size) as msgcount
FROM messages
GROUP BY from_user_id;

To get the same information but break it down by the user sending the 
message:

SELECT from_user_id
        , min(msg_date) as firstmsg
        , max(msg_date) as lastmsg
        , min(msg_size) as smallestmsg
        , max(msg_size) as longestmsg
        , avg(msg_size) as avgmsg
        , sum(msg_size) as totalmsg
        , count(msg_size) as msgcount
FROM messages
GROUP BY from_user_id;

Were these the types of queries you were interested in?

Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine

Reply via email to