| Version 4 (modified by , 5 days ago) ( diff ) |
|---|
Вкупна годишна анализа од пациенти - расположение, успешност на консултации и терапија
SELECT
EXTRACT(YEAR FROM d.date) AS Year,
COUNT(DISTINCT p.id_user) AS Total_Patients,
COUNT(DISTINCT c.id_consultation) AS Total_Consultations,
COUNT(DISTINCT th.id_therapy) AS Total_Therapies,
ROUND(AVG(d.daily_rating), 2) AS Avg_Mood_All_Patients,
MIN(d.daily_rating) AS Lowest_Mood_Recorded
FROM project.patient p
JOIN project.user u
ON u.id_user = p.id_user
LEFT JOIN project.consultation c
ON c.id_patient = p.id_user
LEFT JOIN project.therapy th
ON th.id_consultation = c.id_consultation
JOIN project.diary d
ON d.id_patient = p.id_user
GROUP BY EXTRACT(YEAR FROM d.date)
ORDER BY Year;
Годишен извештај за честота на користење на консултации и процент на платени консултации заедно со нивната просечна цена
SELECT
EXTRACT(YEAR FROM c.date) AS Year,
t.id_user,
u.name || ' ' || u.surname AS Therapist_Name,
COUNT(c.id_consultation) AS Total_Consultations,
COUNT(CASE WHEN date_of_payment IS NOT NULL THEN 1 END) AS Completed_Consultations,
ROUND(
COUNT(CASE WHEN date_of_payment IS NOT NULL THEN 1 END)::DECIMAL
/ NULLIF(COUNT(c.id_consultation), 0) * 100,
2
) AS Completion_Rate_Percentage,
ROUND(AVG(c.price), 2) AS Avg_Consultation_Price
FROM project.therapist t
JOIN project.user u
ON u.id_user = t.id_user
JOIN project.consultation c
ON c.id_therapist = t.id_user
GROUP BY
EXTRACT(YEAR FROM c.date),
t.id_user,
u.name,
u.surname
ORDER BY
Year,
Completion_Rate_Percentage DESC;
Note:
See TracWiki
for help on using the wiki.
