प्रत्येक देश में मासिक राजस्व, केवल सक्रिय ग्राहक
HAVING-शैली ग्राहक फ़िल्टर के साथ एक वित्तीय रिपोर्ट
इनपुट और आउटपुट का पूर्वावलोकन देखें
इनपुट
- क्वेरी को क्या लौटाना चाहिए?
- Monthly revenue per country for 2025, counting only customers who placed more than 3 orders in 2025. Sort by month, then revenue descending.
- टेबल और कॉलम (वैकल्पिक)
- orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, country text, signup_at timestamp)
- SQL डायलैक्ट
- PostgreSQL
- क्वेरी शैली
- पठनीय (CTEs, प्रत्येक क्लॉज़ नई पंक्ति में)
- व्याख्या
- संक्षिप्त
आउटपुट (अंश)
```sql
WITH active_customers AS (
SELECT o.customer_id
FROM orders AS o
WHERE o.created_at >= DATE '2025-01-01'
AND o.created_at < DATE '2026-01-01'
GROUP BY o.customer_id
HAVING COUNT(*) > 3
)
SELECT
DATE_TRUNC('month', o.created_at)::date AS month,
c.country,
SUM(o.total_cents) / 100.0 AS revenue
FROM orders AS o
JOIN active_customers AS a ON a.customer_id = o.customer_id
JOIN customers AS c ON c.id = o.customer_id
WHERE o.created_at >= DATE '2025-01-01'
AND o.created_at < DATE '2026-01-01'
GROUP BY 1, 2
ORDER BY month, revenue DESC;
```
**स्कीमा जैसा दिया गया है।**
CTE 2025 में तीन से अधिक ऑर्डर वाले ग्राहकों को खोजता है; मुख्य क्वेरी केवल उनके ऑर्डर रखती है, प्रत्येक ऑर्डर को उसके महीने में ट्रंकेट करती है और महीने व देश के अनुसार राजस्व का योग करती है। डेट रेंज आधा-खुला है इसलिए 31 दिसंबर को एक बार ही गिना जाता है…