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

रेल क्वेरी को पोस्टग्रेज करता है, केवल उन आइटम्स का चयन करता है जो एसोसिएशन के साथ सभी खोज पैरा में दिखाई देते हैं

आप जांच सकते हैं कि प्रत्येक वर्ष के लिए कौन सी वस्तुओं का रिकॉर्ड है। आप यह जांच कर सकते हैं कि प्रत्येक आइटम के लिए अलग-अलग वर्षों की संख्या कुल वर्षों के बराबर है (COUNT DISTINCT का उपयोग करके) ):

 number_years = params[:end_year].to_i - params[:start_year].to_i + 1
 @sale_averages = Sale.joins(:shops, :items)
                      .select('items.name, AVG(sale.price) as price')
                      .where("EXTRACT(year from season_year) BETWEEN #{params[:start_year]} AND #{params[:end_year]}")
                      .where('shops.name': params[:select_shop])
                      .group('items.name')
                      .having("(COUNT(DISTINCT(EXTRACT(year from season_year))) = #{number_years})")

मैंने BETWEEN . का भी उपयोग किया है < . के बजाय और > .मुझे लगता है कि आप दुकान के बजाय आइटम नाम के आधार पर समूह बनाना चाहते हैं (जैसा कि यह आपकी मूल क्वेरी में था)।




  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. पोस्टग्रेज में ग्रुप बाय - JSON डेटा प्रकार के लिए कोई समानता नहीं है?

  4. यह जांचने के 5 तरीके कि क्या PostgreSQL में कोई तालिका मौजूद है

  5. किसी तालिका या कॉलम का जिक्र करते हुए SQL फ़ंक्शन बनाएं जो मौजूद नहीं है (अभी तक)