Write a SQL query using window functions to rank customers within each segment by predicted value and return the top 3 per segment.
Use the provided customer and segment data. Exclude customers without a segment or predicted value, and break equal predicted values by ascending customer ID.
customer_id, customer_name, segment_name, predicted_value, and segment_ranksegment_name, then segment_rank, then customer_id| Column | Type | Description |
|---|---|---|
| customer_idPK | INT | Unique customer identifier |
| customer_name | VARCHAR(100) | Customer display name |
| segment_id | INT | Customer segment identifier |
| predicted_value | NUMERIC(12,2) | Predicted customer value |
| Column | Type | Description |
|---|---|---|
| segment_idPK | INT | Unique segment identifier |
| segment_name | VARCHAR(100) | Segment display name |