views:

84

answers:

5

So I have some data that looks like this.

`USERID1 USERID2`
    1        10
    2        20
    2        30
    3        40
    3        50
    1        10
    2        20
    2        30
    3        50

I want a query that produces the following

`USERID1     COUNT`
    2        2
    3        2

It's a group by query that shows me the count of unique USERID2 for each USERID1 that has more than 1 USERID2 associated with it. God I hope you aren't as confused as I am by that last statement.

+1  A: 

Could you try something like this:-

SELECT UserID1, COUNT(UserID2) FROM Table1 GROUP BY UserId1
HAVING COUNT(UserID2)>1
ydobonmai
+2  A: 

How about:

select userid1, count(*) from tablename group by userid1 having count(*) > 1
MJB
+2  A: 

Does this work?

SELECT USERID1, COUNT(DISTINCT USERID2) 
  FROM [table] 
 GROUP BY USERID1 
HAVING COUNT(DISTINCT USERID2) > 1
Andy Shellam
Not sure If you have to do count on "DISTINCT USERID2".
ydobonmai
@Ashish - Dayton said "count of unique USERID2" - therefore the DISTINCT is required for the "unique"-ness
Andy Shellam
A: 

How about this??

select userid1, count(distinct userid2) from nameOfTable where userid1 > 1 group by userid1

exiter2000
You forgot the having clause. I only notice because I forgot it when I first answered.
MJB
A: 
select userid1, count(userID1) as [count] from tablename group by userid1 order by userid1
Jimmy