PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Postgresql अद्वितीय मूल्य के साथ यादृच्छिक चुनें

क्या आपके प्रश्न को इस रूप में फिर से लिखा जा सकता है:

"यादृच्छिक रूप से चुने गए दस प्रदाताओं में से प्रत्येक के लिए, उस प्रदाता द्वारा ऑफ़र किया गया एक यादृच्छिक रूप से चयनित सौदा खोजें" ?

यदि हां, तो यह बहुत कुछ आपको बताता है कि क्या करना है। आपको दो परतों की आवश्यकता है, एक पास दस प्रदाताओं को बेतरतीब ढंग से चुनने के लिए, फिर एक पास प्रति प्रदाता एक यादृच्छिक सौदे का चयन करने के लिए।

डमी डेटा दिया गया:

create table spam ( deal text, provider text );

insert into spam(deal,provider) 
SELECT prov_id||n::text, prov_id FROM (
    SELECT chr(x) AS prov_id from  generate_series(97, 92+26) x) y 
CROSS JOIN generate_series(1,10) n;

select provider FROM spam GROUP BY provider ORDER BY random() LIMIT 10;

यहाँ एक है जो काम करता है:

SELECT
 (SELECT deal FROM spam WHERE spam.provider = sel_prov.provider ORDER BY random() LIMIT 1),
 sel_prov.provider
FROM (select provider FROM spam GROUP BY provider ORDER BY random() LIMIT 10) sel_prov;

... ऊपर दिए गए वाक्यांश को SQL के रूप में लागू करके बहुत अधिक। पता नहीं क्या यह तेज़ है; आपको अंदाजा हो गया।

यदि उपरोक्त रीफ़्रेशिंग सही नहीं है, तो कृपया नमूना डेटा और एक उदाहरण, या अपने विवरण में कुछ और विवरण के साथ अपने प्रश्न को स्पष्ट करें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql स्तंभ संदर्भ आईडी अस्पष्ट है

  2. पोस्टग्रेज - जहां (सूची) में - कॉलम मौजूद नहीं है

  3. क्या समाप्ति समय निर्धारित करने का कोई तरीका है, जिसके बाद PostgreSQL में डेटा प्रविष्टि स्वचालित रूप से हटा दी जाती है?

  4. PostgreSQL में "INSERT में लक्ष्य स्तंभों की तुलना में अधिक भाव हैं" को ठीक करें

  5. रेल में एकाधिक मैचों के साथ PostgreSQL समान है ActiveRecord