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

PostgreSQL में कैसे रैंडम () काम करता है

PostgreSQL में, random() फ़ंक्शन 0.0 <=x <1.0 की श्रेणी में एक छद्म-यादृच्छिक मान देता है।

यह एक साधारण रैखिक सर्वांगसम एल्गोरिथ्म का उपयोग करता है, जो सबसे पुराने और सबसे प्रसिद्ध छद्म यादृच्छिक संख्या जनरेटर एल्गोरिदम में से एक है।

एक छद्म यादृच्छिक संख्या एक संख्या है जो यादृच्छिक प्रतीत होती है, लेकिन वास्तव में यादृच्छिक नहीं है। एक छद्म यादृच्छिक संख्या वास्तव में यादृच्छिक नहीं है क्योंकि इसका मूल्य ज्ञात बीज द्वारा उत्पन्न किया गया था। हालांकि, यह यादृच्छिक प्रतीत होगा यदि उपयोगकर्ता को उस बीज या एल्गोरिथम का कोई ज्ञान नहीं है जिसने इसे बनाया है।

इसलिए, छद्म यादृच्छिक संख्याओं को अक्सर कई अनुप्रयोगों के लिए काफी अच्छा माना जाता है।

उदाहरण

यहां random() . के साथ छद्म-यादृच्छिक संख्या उत्पन्न करने का एक उदाहरण दिया गया है समारोह।

SELECT random();

परिणाम:

0.625357600199532

हर बार जब आप इसे कॉल करेंगे तो परिणाम स्पष्ट रूप से अलग होगा।

यहां एक और उदाहरण दिया गया है जहां मैं एक ही कथन में तीन बार फ़ंक्शन को कॉल करता हूं।

SELECT 
  random(),
  random(),
  random();

परिणाम:

 random            | random              | random
-------------------+---------------------+--------------------
 0.594431747016209 | 0.22816249693650903 | 0.7168820259873314

1 और 10 के बीच यादृच्छिक संख्या

यहां 0 और 10 के बीच एक धनात्मक संख्या उत्पन्न करने का एक उदाहरण दिया गया है।

SELECT random() * 10 + 1;

परिणाम:

4.564859004063727

स्पष्ट होने के लिए, यह एक यादृच्छिक संख्या उत्पन्न करता है जो है>=1 और <10.

यादृच्छिक पूर्णांक

आप trunc() . जैसे फ़ंक्शन का उपयोग कर सकते हैं या floor() यादृच्छिक संख्या को पूर्णांक के रूप में वापस करने के लिए।

SELECT 
  trunc(random() * 10 + 1),
  floor(random() * 10 + 1);

परिणाम:

 trunc | floor
-------+-------
     1 |     8

यादृच्छिक पंक्तियां लौटाएं

आप random() का उपयोग कर सकते हैं ORDER BY . में यादृच्छिक पंक्तियों को वापस करने के लिए डेटाबेस क्वेरी का खंड।

यहां एक उदाहरण दिया गया है जो पगिला . से पूछताछ करता है नमूना डेटाबेस।

SELECT 
  film_id,
  title
FROM film 
ORDER BY random() LIMIT 5;

परिणाम:

 film_id |        title        
---------+---------------------
     116 | CANDIDATE PERDITION
     806 | SLEEPY JAPANESE
     892 | TITANIC BOONDOCK
     826 | SPEED SUIT
     612 | MUSSOLINI SPOILERS

और अगर मैं इसे फिर से चलाता हूं तो मुझे यह मिलता है:

 film_id |       title        
---------+--------------------
     450 | IDOLS SNATCHERS
     827 | SPICE SORORITY
     593 | MONTEREY LABYRINTH
     529 | LONELY ELEPHANT
     591 | MONSOON CAUSE

यदि आपके पास एक बड़ी तालिका है, और आपको सभी पंक्तियों (या बहुत सी पंक्तियों) को वापस करने की आवश्यकता है, तो आप अपनी क्वेरी को कुछ इस तरह संशोधित करना चाहेंगे:

SELECT *
FROM film 
WHERE film_id IN 
  (SELECT film_id FROM film ORDER BY random() LIMIT 5);

दोहराने योग्य यादृच्छिक संख्याएं बनाएं

Postgres में एक setseed() भी होता है फ़ंक्शन जो आपको बाद के random() . के लिए एक बीज सेट करने की अनुमति देता है उसी सत्र में कॉल करें।

आप setseed() . का उपयोग कर सकते हैं दोहराने योग्य random() . उत्पन्न करने के लिए कॉल।

उदाहरण के लिए देखें कि कैसे सेटसीड () पोस्टग्रेज में काम करता है।


  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. पैरामीटर के रूप में पूर्णांक सरणियों को पोस्टग्रेज करता है?

  4. MySQL में PostgreSQL का date_trunc

  5. Django फ़िल्टर कॉल से लौटाई गई सूची का डिफ़ॉल्ट क्रम क्या है?