select c.cid, c2.cid
from customer as c
inner join customer as c2 on c.street = c2.street
where c.city <> c2.city
though that has reflective duplicates say (1, 5) would also have (5, 1) in the output. So I'm not sure if that's "allowed"For example normalisation (join with a groupby/sum of yourself) or rank (join each row with all rows that have lower value than yourself and count those rows).
But as I mentioned above. A good start is to sketch that out in excel. You will realize that what you need is another column (e.g. total sum for this id). And from that you can work yourself backwards to figure out what is the table you need to join with to create that column.
the question was: "List all pairs of customer IDs who live on a street with the same name but in a different city." listed under self-join
that said i haven't wrangled with raw sql in a spell so the reading on window functions is interesting.
That said, I have a feeling your duplicates can be fixed by adding the requirement that c.cid < c2.cid
Not sure a window function would help in this particular situation, but they are there to help in more mundane examples.