Моя проблема заключается в следующем:
У меня есть список рекомендаций, адреса рекомендаций и города, где они были получены (пример приведен ниже).
В моей таблице около 7000 строк, все ссылки уникальны, некоторые из них находятся в одном городе и имеют один и тот же адрес.
Мне бы хотелось узнать, возможно ли выбрать 700 или более ссылок случайным образом, но для каждого адреса создать ограничение в 5 ссылок на адрес.
Я не против случайных дубликатов, но я не могу допустить, чтобы в одном городе из 700 упоминаний одного и того же адреса/улицы было 55.
Может ли кто-нибудь дать мне какие-нибудь указания?
Образец:
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 |
+---------------------------+-----------------------------------+---------------+
Пример окончательного отбора 17 ссылок из 35 выборки:
В этом образце из 34 строк мне может понадобиться 20 ссылок. Я не против, если будут 2 дубликата, но 5 из 20 «AV. DOS DESCOBRIMENTOS» — это проблема. Поэтому в этом случае я хотел бы иметь условие максимум 2 одинаковых адреса на город.
+---------------------------+-----------------------------------+---------------+
| 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 |
+---------------------------+-----------------------------------+---------------+