Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: SQL Server
Expertise: Beginner
Sep 18, 1998

query

Question:
I have a table like this:

name   cat1     cat2
----   ------   -----
A       1       orange
A       1       orange
B       1       apple
B       1       apple
B       1       apple
C       2       banana
C       2       banana
C       2       banana
C       2       banana
How can I form the query so that the result will be:

cat2      cat1   count(cat2)
----      ----   -----------
orange      1        2
apple       1        3
banana      2        4
I have tried a combination of group by, distinct and whatnot, but I always get
 
orange      1
orange      1        
apple       1
apple       1  
apple       1     
banana      2
banana      2
banana      2
banana      2
Also, what will be a good book on SQL? Any good discussion 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_name
group 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.
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date