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

पोस्टग्रेज:प्रत्येक समूह के भीतर एक मूल्य की शीर्ष n घटनाएँ प्राप्त करें

कुछ इस तरह:

select *
from (
    select userid, 
           letter, 
           dense_rank() over (partition by userid order by count(*) desc) as rnk
    from letters
    group by userid, letter
) t
where rnk <= 2
order by userid, rnk;

ध्यान दें कि मैंने user . को बदल दिया है userid . के साथ क्योंकि कॉलम के लिए आरक्षित शब्दों का प्रयोग करना एक बुरी आदत है।

यहाँ एक SQLFiddle है:http://sqlfiddle.com/#!12/ec3ec/1



  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. JDBC के माध्यम से Postgresql 8.4 पर कोई पासवर्ड सेट किए बिना उपयोगकर्ता के रूप में कनेक्ट करें

  3. SQL क्वेरी को प्रोग्रामेटिक रूप से बनाने के लिए मजबूत दृष्टिकोण

  4. Laravel Eloquent . में सबक्वेरी के साथ इनर जॉइन का उपयोग कैसे करें

  5. मैं कॉलम को दो टेबल से एक आउटपुट में कैसे मर्ज कर सकता हूं?