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

चयन पर एक से एक अलग प्रतिबंध

कोशिश करें:

select a.id, a.x as ax, b.x as bx, x.min_abs_diff
  from table_a a
  join table_b b
    on a.id = b.id
  join (select a.id, min(abs(a.x - b.x)) as min_abs_diff
          from table_a a
          join table_b b
            on a.id = b.id
         group by a.id) x
    on x.id = a.id
   and abs(a.x - b.x) = x.min_abs_diff

पहेली:http://sqlfiddle.com/#!15/ab5ae/5/0

हालांकि यह आपके अपेक्षित आउटपुट से मेल नहीं खाता है, मुझे लगता है कि आउटपुट आपके द्वारा वर्णित के आधार पर सही है, जैसा कि आप देख सकते हैं कि प्रत्येक जोड़ी में 1 के निरपेक्ष मान के साथ अंतर होता है।

संपादित करें - a से b के क्रम के आधार पर निम्न का प्रयास करें:

select *
  from (select a.id,
               a.x as ax,
               b.x as bx,
               x.min_abs_diff,
               row_number() over(partition by a.id, b.x order by a.id, a.x) as rn
          from table_a a
          join table_b b
            on a.id = b.id
          join (select a.id, min(abs(a.x - b.x)) as min_abs_diff
                 from table_a a
                 join table_b b
                   on a.id = b.id
                group by a.id) x
            on x.id = a.id
           and abs(a.x - b.x) = x.min_abs_diff) x
 where x.rn = 1

पहेली:http://sqlfiddle.com/#!15/ab5ae/19/0



  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 .ADO.net इकाई डेटा मॉडल उत्पन्न करते समय डेटा स्रोत में प्रकट नहीं होता है