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.

See also  How IoT Tech Will Transform Logistics

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist