Månatlig intäkt per land, endast aktiva kunder
En finansiell rapport med ett HAVING‑liknande kundfilter
Visa förhandsvisning av in- och utdata
Indata
- Vad ska frågan returnera?
- Monthly revenue per country for 2025, counting only customers who placed more than 3 orders in 2025. Sort by month, then revenue descending.
- Tabeller och kolumner (valfritt)
- orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, country text, signup_at timestamp)
- SQL‑dialekt
- PostgreSQL
- Frågestil
- Läsbar (CTE‑er, en klausul per rad)
- Förklaring
- Kort
Utdata (utdrag)
```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;
```
**Schema används som givet.**
CTE:n hittar kunder med mer än tre beställningar år 2025; huvudfrågan behåller endast deras beställningar, trunkerar varje beställning till sin månad och summerar intäkterna per månad och land. Datumintervallet är halvöppet så den 31 december räknas en gång…