I have a table that looks something like this
city | num | something |
---|---|---|
LA | 1233 | av |
NYC | 1233 | ad |
ATL | 1233 | ac |
SF | 426 | ah |
Hollywood | 426 | ap |
and I want something like this where we just pick one row of all the distinct nums but only one.
city | num | something |
---|---|---|
LA | 1233 | av |
SF | 426 | ah |
What query method would be most effective at getting the second table?
I chose LA 1233 av at random. I do not care what specific instance of 1233 that I get, just that I only get.
CodePudding user response:
here is one way :
select * from (
select * , row_number() over (partition by num order by random()) as rn
from tablename
) t where rn = 1
which return random select each time , but if you don't care use a column like city
in your order by clause.