Напредни извештаи од базата (SQL)
- Упит за квартална анализа на приходите по вработен: - Со квартална анализа на приходите, можеме да ја разбереме разликата во приходите за секој вработен во секој квартал. може да помогне во разбирањето на влијанието на кварталните сезони врз приходите по работник.
- Упит за наоѓање на годишна просечна оцена за секоја работа во категоријата работни места - Преку годишната просечна оцена, со задоволство ги користиме просечните оценки за работните места во секоја категорија работни места во тековната година. Ова може да помогне да се операционализираат податоците на клиентите за квалитетот на работата низ категориите.
- Упит за да ја пронајдете годишната вкупна распределба на буџетот по категорија на работа - Со годишната распределба на буџетот, можете да измерите колку буџет е доделен за секоја работна категорија во тековната година.
- Упит за наоѓање на најмногу резервирани работни места и категории работни места за секој месец и секоја година - Овој упит ќе ви даде преглед на најрезервираните работни места и категориите работни места за секој месец од секоја година.
1. Упит за квартална анализа на приходите по вработен -
WITH quarterly_revenue AS ( SELECT DATE_TRUNC('quarter', b.booking_time) AS quarter_start, w.ID AS worker_id, SUM(p.amount) AS revenue FROM Booking b JOIN Payment p ON b.ID = p.booking_ID JOIN Worker w ON b.worker_id = w.ID GROUP BY quarter_start, w.ID ) SELECT quarter_start, w.username AS worker_username, revenue, SUM(revenue) OVER(PARTITION BY worker_id ORDER BY quarter_start) AS cumulative_revenue FROM quarterly_revenue qr JOIN User_entity w ON qr.worker_id = w.ID ORDER BY quarter_start, worker_username;
2. Упит за наоѓање на годишна просечна оцена за секоја работа во категоријата работни места -
WITH yearly_avg_rating AS ( SELECT DATE_PART('year', j.time) AS year, jc.name AS job_category, AVG(r.rating) AS avg_rating FROM Job j JOIN Booking b ON j.ID = b.job_id JOIN Review r ON b.ID = r.booking_ID JOIN Categorized c ON j.ID = c.job_id JOIN Job_Category jc ON c.job_category_id = jc.ID GROUP BY year, jc.name ) SELECT year, job_category, avg_rating FROM yearly_avg_rating ORDER BY year, job_category;
3. Упит за да ја пронајдете годишната вкупна распределба на буџетот по категорија на работа -
WITH yearly_budget_allocation AS ( SELECT DATE_PART('year', j.time) AS year, jc.name AS job_category, SUM(j.budget) AS total_budget FROM Job j JOIN Categorized c ON j.ID = c.job_id JOIN Job_Category jc ON c.job_category_id = jc.ID GROUP BY year, jc.name ) SELECT year, job_category, total_budget FROM yearly_budget_allocation ORDER BY year, job_category;
4. Упит за наоѓање на најмногу резервирани работни места и категории работни места за секој месец и секоја година -
SELECT EXTRACT(YEAR FROM b.booking_time) AS year, EXTRACT(MONTH FROM b.booking_time) AS month, jc.name AS job_category, j.title AS job_title, COUNT(*) AS booking_count FROM Job j JOIN Booking b ON j.ID = b.job_id JOIN Categorized c ON j.ID = c.job_id JOIN Job_Category jc ON c.job_category_id = jc.ID GROUP BY year, month, jc.name, j.title ORDER BY year, month, booking_count DESC;
Last modified
3 months ago
Last modified on 02/14/24 15:05:24
Note:
See TracWiki
for help on using the wiki.