내 문제는 다음과 같습니다.
참고인 목록, 참고인의 주소, 참고한 도시가 있습니다(샘플은 아래에 공유되어 있습니다).
내 테이블에는 대략 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 |
+---------------------------+-----------------------------------+---------------+
샘플 35개 중 17개 참고문헌을 최종 선택하는 예:
34줄로 구성된 이 샘플에서는 20개의 참조가 필요할 수 있습니다. 2개의 중복은 상관 없지만 20개의 "AV. DOS DESCOBRIMENTOS" 중 5개가 문제입니다. 따라서 이 경우 도시당 최대 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 |
+---------------------------+-----------------------------------+---------------+