I've got the following query that produces a large table for me.

SELECT
    router.name AS Router,
    SUM(IF(speed<='64000',1,0)) AS 64K,
    SUM(IF(speed='128000',1,0)) AS 128K,
    SUM(IF(speed='192000',1,0)) AS 192K,
    SUM(IF(speed='256000',1,0)) AS 256K,
    SUM(IF(speed='384000',1,0)) AS 384K,
    SUM(IF(speed='512000',1,0)) AS 512K,
    SUM(IF(speed='768000',1,0)) AS 768K,
    SUM(IF(speed='1024000',1,0)) AS 1M,
    SUM(IF(speed='1152000',1,0)) AS 1152K,
    SUM(IF(speed='1280000',1,0)) AS 1280K,
    SUM(IF(speed='1536000'
        OR speed='1544000',1,0)) AS 'V/T1',
    SUM(IF(speed='3000000',1,0)) AS 3M,
    SUM(IF(speed='6000000',1,0)) AS 6M,
    SUM(IF(speed='9000000',1,0)) AS 9M,
    SUM(IF(speed='10000000',1,0)) AS 10M,
    SUM(IF(speed='12000000',1,0)) AS 12M,
    SUM(IF(speed='24000000',1,0)) AS 24M,
    SUM(IF(speed BETWEEN '40000000' AND '46000000',1,0)) AS 'DS3/T3',
    SUM(IF(speed='100000000',1,0)) AS 100M,
    SUM(IF(speed='155000000',1,0)) AS OC3,
    SUM(IF(speed BETWEEN '599000000' AND '650000000',1,0)) AS OC12,
    SUM(IF(speed='1000000000',1,0)) AS Gigabit,
    SUM(IF(speed='115000',1,0)) AS Dialup,
    SUM(IF(speed>'64000'
        AND speed!='128000'
        AND speed!='192000'
        AND speed!='256000'
        AND speed!='384000'
        AND speed!='512000'
        AND speed!='768000'
        AND speed!='1024000'
        AND speed!='1152000'
        AND speed!='1280000'
        AND speed!='1536000'
        AND speed!='1544000'
        AND speed!='3000000'
        AND speed!='6000000'
        AND speed!='9000000'
        AND speed!='10000000'
        AND speed!='12000000'
        AND speed!='24000000'
        AND speed NOT BETWEEN '40000000' AND '46000000'
        AND speed!='100000000'
        AND speed!='155000000'
        AND speed NOT BETWEEN '599000000' AND '650000000'
        AND speed!='1000000000'
        AND speed!='115000',1,0)) AS Other,
    COUNT(*) AS Total
    FROM router INNER JOIN interface USING (rid)
    GROUP BY router.rid
    ORDER BY router.name;

The query as written works just fine although I'm certain there's got to be
a more efficient way of doing the same thing.  I'm relatively new to MySQL
so I took the brute force approach.

My problem is that I want to produce totals of each of the columns and can't
figure out how to do it.  Any suggestions on how I can do this?

Thanks,

Jack

Jack Coxen
IP Network Engineer
TelCove
712 North Main Street
Coudersport, PA 16915
814-260-2705

Reply via email to