sql - query to count number of unique relations -


i have 3 tables:
t_user (id, name) t_user_deal (id, user_id, deal_id) t_deal (id, title)

multiple user can linked same deal. (i'm using oracle should similar, can adapt it)

how can users (name) number of unique user made deal with.

let's explain data:

t_user: id, name 1, joe 2, mike 3, john  t_deal: id, title 1, deal number 1 2, deal number 2  t_user_deal: id, user_id, deal_id 1, 1, 1 2, 2, 1 3, 1, 2 4, 3, 2 

the result expect: user_name, number of unique user made deal joe, 2 mike, 1 john, 1

i've try didn't expected result:

select tu.name,     count(tu.id) nbrelations t_user tu inner join t_user_deal tud on tu.id = tud.user_id  inner join t_deal td on tud.deal_id = td.id   (     td.id in      (       select distinct td.id        t_user_deal tud2        inner join t_deal td2 on tud2.deal_id = td2.id        tud.id <> tud2.user_id     ) )  group tu.id order nbrelations desc 

thanks help

this should result

     select id1, count(id2),name      (              select distinct tud1.user_id id1 , tud2.user_id id2             t_user_deal tud1, t_user_deal tud2              tud1.deal_id = tud2.deal_id             , tud1.user_id <> tud2.user_id) tab, t_user tu      tu.id = id1       group id1,name 

Comments