sql >> Database >  >> RDS >> PostgreSQL

Ik heb een functie nodig om 88 willekeurige rijen uit een tabel te selecteren (zonder duplicaten)

Hier is een snelle oplossing die je misschien leuk vindt:

CREATE EXTENSION IF NOT EXISTS tsm_system_rows;

     select * from task 
tablesample system_rows (88);

Ter referentie:TABLESAMPLE staat in de documenten voor SELECT:https://www. postgresql.org/docs/current/sql-select.html

Hier is een behoorlijk goede beschrijving van de functie:

https://www.2ndquadrant.com/ nl/blog/tablesample-in-postgresql-9-5-2/

...en een ander stuk over het algemene onderwerp van willekeurige steekproeven door dezelfde auteur:

https://www. 2ndquadrant.com/en/blog/tablesample-and-other-methods-for-getting-random-tuples/

tsm_system_rows is een van de twee standaard sampling-extensies, die hier worden gedocumenteerd:https:/ /www.postgresql.org/docs/current/tsm-system-rows.html

Hoi! Ik ben blij dat je deze vraag stelt. Ik heb de neiging om de BERNOULLI-methode te gebruiken, die standaard in SELECT is ingebouwd, maar is gebaseerd op een percentage. Ik heb dit net uitgeprobeerd en het werkt prima:

select * from task 
tablesample BERNOULLI (1)
limit 88



  1. Mysql-update gebaseerd op het bestaan ​​in een andere tabel

  2. Amazon RDS Point-in-Time Recovery vergelijken met ClusterControl

  3. Hoe de volledige zoekopdracht te zien van PROCESSLIST TOON

  4. Webadres uit tekstreeks verwijderen