Question:
I have a table like this:
name cat1 cat2---- ------ -----A 1 orangeA 1 orangeB 1 appleB 1 appleB 1 appleC 2 bananaC 2 bananaC 2 bananaC 2 banana
How can I form the query so that the result willbe:
cat2 cat1 count(cat2)---- ---- -----------orange 1 2apple 1 3banana 2 4
I have tried a combination of group by, distinct and whatnot, but I always get
orange 1orange 1 apple 1apple 1 apple 1 banana 2banana 2banana 2banana 2
Also, what will be a good book on SQL? Any gooddiscussion list I can join to pick up SQL?I have just started on SQL and have to gain proficiency in a very short time. Right now I am using both Access and SQL6.5.
I have tried a few books but they do not help a lot. The queries are a bit too simple.
Answer:
I’m not sure exactly what you previously tried. However, the following SQL should do the trick.
select cat2,cat1,count(*)from table_namegroup by cat2,cat1
As far as good books are concerned, Joe Celko has an introductory book on SQL. When you get past that one, you can go on to his more advanced books.