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.

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.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin


Recent Articles: