I would suggest a union

SELECT name, count(*) 
FROM (SELECT name1 as name from mytable union select name2 as name from
mytable union select name3 as name from table) 
GROUP BY name

but perhaps there's a better way...

Regards,
Patrick


> -----Original Message-----
> From: Critters [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, 19 January 2006 16:17
> To: mysql@lists.mysql.com
> Subject: Group By over many colums
> 
> Hi
> I have a table setup like this:
> 
> id, name1, name2, name3
> 
> Which has data like this:
> 
> 1, Dave, Bob, Simon
> 2, Joe, Tim, Dave
> 3, Dave, Bob, Tom
> 
> I can run 
> 
> SELECT name, count(id) FROM <tablename> GROUP BY name1 ORDER 
> BY count(id) DESC
> 
> Which would give me:
> 
> Dave, 2
> Joe, 1
> 
> But how would I go about getting the following result:
> 
> Dave, 3
> Bob, 2
> Tom, 2
> Joe, 1
> Simon, 1
> 
> Where it groups by name1, name2 and name3? Is it possible?
> -
> David Scott


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to