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

एक Sql डेटाबेस से सरल यादृच्छिक नमूने

मुझे लगता है कि सबसे तेज़ समाधान है

select * from table where rand() <= .3

यही कारण है कि मुझे लगता है कि यह काम करना चाहिए।

  • यह प्रत्येक पंक्ति के लिए एक यादृच्छिक संख्या बनाएगा। संख्या 0 और 1 के बीच है
  • यह मूल्यांकन करता है कि क्या उस पंक्ति को प्रदर्शित करना है यदि उत्पन्न संख्या 0 और .3 (30%) के बीच है।

यह मानता है कि रैंड () एक समान वितरण में संख्याएँ उत्पन्न कर रहा है। ऐसा करने का यह सबसे तेज़ तरीका है।

मैंने देखा कि किसी ने उस समाधान की सिफारिश की थी और उन्हें बिना सबूत के गोली मार दी गई.. मैं उससे यही कहूंगा -

  • यह O(n) है लेकिन किसी सॉर्टिंग की आवश्यकता नहीं है इसलिए यह O(n lg n) से तेज़ है
  • mysql प्रत्येक पंक्ति के लिए यादृच्छिक संख्याएँ उत्पन्न करने में बहुत सक्षम है। इसे आजमाएं -

    INFORMATION_SCHEMA.TABLES सीमा 10 से रैंड () चुनें;

चूंकि विचाराधीन डेटाबेस mySQL है, यह सही समाधान है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL प्रतिकृति का उपयोग करके मूडल के लिए अत्यधिक उपलब्ध डेटाबेस का निर्माण

  2. क्या इसका उच्चारण "एस-क्यू-एल" या "सीक्वल" है?

  3. क्या MySQL FIND_IN_SET या समकक्ष को इंडेक्स का उपयोग करने के लिए बनाया जा सकता है?

  4. MySQL में एक को छोड़कर सभी कॉलम चुनें?

  5. COUNT(*) के आधार पर फ़िल्टर करें?