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

मैं अपने मूल असेंबली के साथ बेचे गए घटकों की मात्रा की गणना करने के लिए SQL क्वेरी कैसे लिख सकता हूं? (पोस्टग्रेस 11/रिकर्सिव सीटीई?)

मूल रूप से आपके पास समाधान है। यदि आपने मात्राओं और श्रेणियों को अपने सीटीई में भी संग्रहीत किया है, तो आप बस एक WHERE जोड़ सकते हैं फ़िल्टर और एक SUM बाद में एकत्रीकरण:

SELECT
    child_name,
    SUM(sold_quantity * child_quantity)
FROM cte
WHERE category = 'component'
GROUP BY child_name

मेरी पूरी क्वेरी इस तरह दिखती है (जो केवल आपके द्वारा ऊपर बताए गए विवरण में भिन्न है):

demo:db<>fiddle

WITH RECURSIVE cte AS (
    SELECT 
        s.sold_name,
        s.sold_quantity,
        r.child_name,
        r.child_quantity,
        nc.thing_category as category
    FROM 
        sales s
    JOIN relator r
    ON s.sold_name = r.parent_name
    JOIN names_categories nc
    ON r.child_name = nc.thing_name
    
    UNION ALL
    
    SELECT
        cte.sold_name,
        cte.sold_quantity,
        r.child_name,
        r.child_quantity,
        nc.thing_category
    FROM cte
    JOIN relator r ON cte.child_name = r.parent_name
    JOIN names_categories nc
    ON r.child_name = nc.thing_name
)
SELECT
    child_name,
    SUM(sold_quantity * child_quantity)
FROM cte
WHERE category = 'component'
GROUP BY child_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. PostgreSQL डेटाबेस का ऑडिट कैसे करें

  3. एक चुनौतीपूर्ण Django क्वेरीसेट बनाने के लिए एक क्वेरी तैयार करना

  4. Postgresql:तालिका का नाम / स्कीमा भ्रम

  5. LIMIT/OFFSET के साथ एक क्वेरी चलाएँ और पंक्तियों की कुल संख्या भी प्राप्त करें