I have a table with 300K records, but only ~100 unique town names. I need sql to return 1 row for each individual town name. Table structure:
UNIQUE_ID | STREET_NUMBER | STREET_NAME | STREET_TYPE | TOWN | ZIP |
---|---|---|---|---|---|
UID01 | 11 | TROY | STREET | ASHFIELD | 2017 |
UID02 | 13 | ABED | ROAD | ASHFIELD | 2017 |
UID03 | 2 | FRANK | COURT | EMERTON | 2021 |
UID04 | 8 | DENNIS | GROVE | SACKVILLE | 2028 |
UID05 | 97 | MAC | CRESCENT | SACKVILLE | 2028 |
UID06 | 102 | CHARLIE | WALK | SACKVILLE | 2028 |
UID07 | 70 | DEE | BOULEVARD | WINDSOR | 2033 |
UID08 | 27 | POPPY | STREET | WINDSOR | 2033 |
UID09 | 33 | ALLY | WAY | BARGO | 2315 |
UID10 | 48 | ELS | AVENUE | BARGO | 2315 |
I'm trying to get the data returned to be something like:
UNIQUE_ID | STREET_NUMBER | STREET_NAME | STREET_TYPE | TOWN | ZIP |
---|---|---|---|---|---|
UID01 | 11 | TROY | STREET | ASHFIELD | 2017 |
UID03 | 2 | FRANK | COURT | EMERTON | 2021 |
UID04 | 8 | DENNIS | GROVE | SACKVILLE | 2028 |
UID07 | 70 | DEE | BOULEVARD | WINDSOR | 2033 |
UID09 | 33 | ALLY | WAY | BARGO | 2315 |
Don't care which record is returned for each town name, but need one record for each town.
I've trawled through various similar posts but can't seem to get the syntax correct.
I'm able to select each individual town name using this:
select min(TOWN) keep (dense_rank first order by rownum) TOWN
from ADDRESS_TABLE group by TOWN;
But not sure how to get the other attached data to return as well.
Help please?