Meu problema é o seguinte:
Tenho uma lista de referências, endereços da referência e a cidade da referência (o exemplo é compartilhado abaixo).
Minha tabela tem cerca de 7.000 linhas, as referências são todas únicas, algumas delas estão na mesma cidade e compartilham o mesmo endereço.
Gostaria de saber se é possível selecionar 700 ou mais referências aleatoriamente mas para cada endereço crie um limite de 5 referências por endereço.
Não me importo de ter duplicatas aleatórias, mas não posso ter em uma cidade específica 55 de 700 referências do mesmo endereço/rua.
Alguém pode me dar algumas dicas?
Amostra:
https://drive.google.com/file/d/1IhcVWtPqu2TiGH1xDFGBUauBm6w1OEyM/view?usp=sharing
+---------------------------+-----------------------------------+---------------+
| Reference | Address | City |
+---------------------------+-----------------------------------+---------------+
| 140120.00001.01.01.01 | EN 2-4 | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00004.01.02.01 | EN 2-4 | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00006.01.01.01 | R. NOSSA SENHORA DA CONCEIÇÃO | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00010.01.01.01 | AV. DAS FORÇAS ARMADAS | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00010.01.02.01 | AV. DAS FORÇAS ARMADAS | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00012.01.01.01 | AV. 25 DE ABRIL | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00013.01.02.01 | AV. DAS FORÇAS ARMADAS | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00015.01.01.01 | AV. 25 DE ABRIL | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00016.01.01.01 | AV. DAS FORÇAS ARMADAS | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00016.01.02.01 | AV. DAS FORÇAS ARMADAS | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00018.01.01.01 | R. SOLANO DE ABREU | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00019.01.01.01 | AV. 25 DE ABRIL | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00020.01.01.01 | AV. 25 DE ABRIL | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00025.01.01.01 | EN 3 | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 010121.00038.01.01.01 | R. JOAQUIM VALENTE DE ALMEIDA | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00038.01.02.01 | R. JOAQUIM VALENTE DE ALMEIDA | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00042.01.01.01 | R. 12 DE DEZEMBRO | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00057.01.01.01 | R. 15 DE AGOSTO | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00058.01.01.01 | R. MANUEL SOUSA CARNEIRO | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00060.01.01.01 | AV. 25 DE ABRI L | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00060.01.02.01 | AV. 25 DE ABRIL | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00061.01.01.01 | R. TEN.-COR. ALBANO MELO | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00063.01.01.01 | AV. 25 DE ABRIL | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00066.01.01.01 | AV. 25 DE ABRIL | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00069.01.01.01 | R. GUSTAVO PIMENTA | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00071.01.01.01 | R. JOSÉ DE SUCENA | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010124.00062.01.02.01 | R. CABEDO E LENCASTRE | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 000150.11559.01.01.01 | PQ. DE ESTACIONAMENTO | ALGARVE SHOPPING |
+---------------------------+-----------------------------------+---------------+
| 080106.00085.01.02.01 | AV. DOS DESCOBRIMENTOS | ALBUFEIRA |
+---------------------------+-----------------------------------+---------------+
| 080106.00089.01.01.01 | AV. DOS DESCOBRIMENTOS | ALBUFEIRA |
+---------------------------+-----------------------------------+---------------+
| 080106.00089.01.02.01 | AV. DOS DESCOBRIMENTOS | ALBUFEIRA |
+---------------------------+-----------------------------------+---------------+
| 080106.00091.01.02.01 | AV. DOS DESCOBRIMENTOS | ALBUFEIRA |
+---------------------------+-----------------------------------+---------------+
| 080106.00092.01.01.01 | AV. DOS DESCOBRIMENTOS | ALBUFEIRA |
+---------------------------+-----------------------------------+---------------+
| 080106.00092.01.02.01 | AV. DOS DESCOBRIMENTOS | ALBUFEIRA |
+---------------------------+-----------------------------------+---------------+
Exemplo de seleção final de 17 referências de 35 da amostra:
Nesta amostra de 34 linhas, posso querer 20 referências, não me importo de ter 2 duplicatas, mas 5 de 20 "AV. DOS DESCOBRIMENTOS" isso é um problema. então neste caso eu gostaria de ter no máximo 2 endereços idênticos por cidade
+---------------------------+-----------------------------------+---------------+
| Reference | Address | City |
+---------------------------+-----------------------------------+---------------+
| 140120.00001.01.01.01 | EN 2-4 | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00006.01.01.01 | R. NOSSA SENHORA DA CONCEIÇÃO | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00010.01.01.01 | AV. DAS FORÇAS ARMADAS | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00012.01.01.01 | AV. 25 DE ABRIL | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00018.01.01.01 | R. SOLANO DE ABREU | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 140120.00025.01.01.01 | EN 3 | ABRANTES |
+---------------------------+-----------------------------------+---------------+
| 010121.00038.01.02.01 | R. JOAQUIM VALENTE DE ALMEIDA | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00042.01.01.01 | R. 12 DE DEZEMBRO | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00057.01.01.01 | R. 15 DE AGOSTO | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00058.01.01.01 | R. MANUEL SOUSA CARNEIRO | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00060.01.01.01 | AV. 25 DE ABRIL | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00069.01.01.01 | R. GUSTAVO PIMENTA | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010121.00071.01.01.01 | R. JOSÉ DE SUCENA | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 010124.00062.01.02.01 | R. CABEDO E LENCASTRE | AGUEDA |
+---------------------------+-----------------------------------+---------------+
| 000150.11559.01.01.01 | PQ. DE ESTACIONAMENTO | ALGARVE |
+---------------------------+-----------------------------------+---------------+
| 080106.00085.01.02.01 | AV. DOS DESCOBRIMENTOS | ALBUFEIRA |
+---------------------------+-----------------------------------+---------------+
| 080106.00089.01.01.01 | AV. DOS DESCOBRIMENTOS | ALBUFEIRA |
+---------------------------+-----------------------------------+---------------+