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

एसक्यूएल में सभी संयुक्त घटनाओं की गणना कैसे करें?

आसानी से नहीं क्योंकि आपके पास अन्य पंक्तियों की तुलना में अंतिम पंक्ति में अलग-अलग संख्या में मेल खाने वाले उत्पाद हैं। आप इसे किसी प्रकार के GROUP_CONCAT() ऑपरेटर (MySQL में उपलब्ध; अन्य DBMS में लागू करने योग्य, जैसे Informix और शायद PostgreSQL) के साथ करने में सक्षम हो सकते हैं, लेकिन मुझे इस पर विश्वास नहीं है।

जोड़ी के अनुसार मिलान

SELECT p1.product_name AS name1, p2.product_name AS name2, COUNT(*)
  FROM (SELECT p.product_name, h.transaction_id
          FROM products AS p
          JOIN transactions_has_products AS h ON h.product_id = p.product_id
       ) AS p1
  JOIN (SELECT p.product_name, h.transaction_id
          FROM products AS p
          JOIN transactions_has_products AS h ON h.product_id = p.product_id
       ) AS p2
    ON p1.transaction_id = p2.transaction_id
   AND p1.product_name   < p2.product_name
 GROUP BY p1.name, p2.name;

ट्रिपल मैच को संभालना गैर-तुच्छ है; इसे इससे आगे बढ़ाना निश्चित रूप से कठिन है।



  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. समय के साथ खुले टिकटों की संख्या उत्पन्न करना, खुली और बंद तारीखों को देखते हुए

  4. एक सामान्य तालिका को एक विदेशी cstore_fdw तालिका में बदलें

  5. PostgreSQL के स्कीमा और रेल का उपयोग करके एक बहु-किरायेदार एप्लिकेशन बनाना