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

Postgres . में एकाधिक फ़ील्ड पर एकत्रित करते समय अनुपलब्ध पंक्तियों को भरें

आप उपयोग कर सकते हैं:

WITH cte AS (
   SELECT date, s.product
   FROM  ... -- some way to generate date series
   CROSS JOIN (SELECT DISTINCT product FROM sales_data) s
)
SELECT 
    c.date,
    c.product,
    COUNT(sd.sale_id) AS sales
FROM cte c
LEFT JOIN sales_data sd
  ON c.date = sd.date AND c.product= sd.product
GROUP BY c.date, c.product
ORDER BY c.date, c.product;

पहले तिथियों और उत्पादों का कार्टेशियन उत्पाद बनाएं, फिर LEFT JOIN वास्तविक डेटा के लिए और गणना करें।

इस परिदृश्य के लिए Oracle के पास नामक बेहतरीन विशेषता है। विभाजित बाहरी जोड़ :

SELECT times.time_id, product, quantity 
FROM inventory  PARTITION BY  (product) 
RIGHT OUTER JOIN times ON (times.time_id = inventory.time_id) 
WHERE times.time_id BETWEEN TO_DATE('01/04/01', 'DD/MM/YY') 
      AND TO_DATE('06/04/01', 'DD/MM/YY') 
ORDER BY  2,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. रोलअप के साथ SQL सर्वर ग्रुप के लिए PostgreSQL समकक्ष

  2. PostgreSQL क्वेरी परिणाम को शेल या PostgreSQL चर में संग्रहीत करें

  3. ON CONFLICT से मेल खाने वाली कोई अनूठी या बहिष्करण बाधा नहीं है

  4. टाइप कैरेक्टर के लिए बहुत लंबा मान (255) लंबाई के लिए 100000

  5. एस्केपिंग hstore में JDBC तैयार स्टेटमेंट में ऑपरेटर होते हैं