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

पोस्टग्रेएसक्यूएल बराबर टॉप एन विद टाईज़:लिमिट विद टाईज़?

13 पोस्ट करें अंत में टाई के साथ जोड़ता है . देखें:

  • सभी से अधिक या बराबर () और MAX () गति के बराबर

कोई टाई के साथ नहीं है पोस्टग्रेएसक्यूएल 12 तक क्लॉज, जैसे कि एसक्यूएल सर्वर में है। :

WITH cte AS (
   SELECT *, rank() OVER (ORDER BY <something>) AS rnk
   FROM   tbl
   )
SELECT *
FROM   cte
WHERE  rnk <= n;

स्पष्ट होने के लिए, रैंक () सही है, dense_rank() गलत होगा (बहुत अधिक पंक्तियाँ लौटाएँ)।
SQL सर्वर डॉक्स से इस उद्धरण पर विचार करें (उपरोक्त लिंक से):

<ब्लॉकक्वॉट>

उदाहरण के लिए, यदि एक्सप्रेशन 5 पर सेट है, लेकिन 2 अतिरिक्त पंक्तियाँ पंक्ति 5 में ORDER BY कॉलम के मानों से मेल खाती हैं, तो परिणाम सेट में 7 पंक्तियाँ होंगी।

with TIES . का काम शीर्ष पर अंतिम पंक्ति के सभी साथियों को शामिल करना है n जैसा कि ORDER BY . द्वारा परिभाषित किया गया है खंड। रैंक () ठीक वैसा ही परिणाम देता है।

यह सुनिश्चित करने के लिए, मैंने SQL सर्वर के साथ परीक्षण किया, यहाँ एक लाइव डेमो है।
और यहाँ एक अधिक सुविधाजनक SQLfiddle है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेज में गतिशील एसक्यूएल क्वेरी

  2. एक कॉलम की कई परिणाम पंक्तियों को एक में, दूसरे कॉलम द्वारा समूहित करें

  3. PostgreSQL में स्थान की गणना और बचत करना

  4. PostgreSQL में महीने की संख्या को महीने के नाम में बदलें

  5. मैं PostgreSQL 9.5 में एक int डेटाटाइप के लिए आकार सीमा कैसे निर्धारित कर सकता हूं?