A clinical research company’s data analysts need to monitor patient measurements across research sites. Write a PostgreSQL query that calculates each patient's rolling 7-calendar-day average and ranks patients within their site based on their latest available rolling average.
NULL averages must rank last.site_name, patient_id, patient_name, measurement_date, measurement_value, rolling_7_day_avg, site_rank.rolling_7_day_avg to two decimal places.measurement_date as latest, breaking ties with greatest measurement_id.patient_id.site_id, patient_id, measurement_date, then measurement_id.| Column | Type | Description |
|---|---|---|
| site_idPK | INT | Research site identifier |
| site_name | VARCHAR(100) | Medpace research site name |
| Column | Type | Description |
|---|---|---|
| patient_idPK | INT | Patient identifier |
| site_id | INT | Research site assigned to the patient |
| patient_name | VARCHAR(100) | Patient display name |
| Column | Type | Description |
|---|---|---|
| measurement_idPK | INT | Measurement identifier |
| patient_id | INT | Patient associated with the measurement |
| measurement_date | DATE | Date on which the measurement was recorded |
| measurement_value | NUMERIC(8,2) | Recorded clinical measurement |