= Напредни извештаи од базата (SQL и складирани процедури) == Прикажување на совет чија што дата на побарување не е постара од 6 месеци гледано од денешната дата, прикажување на корисник кој го побарал советот и прикажување на број на одговори на прашањето. {{{ SELECT bpc.id AS consultation_id, bpc.date_askes AS claim_date, bpc.title AS consultation_title, bpc.description AS consultation_description, u.id AS user_id, u.name AS user_name, COUNT(bpa.id) AS answers_count FROM project.blog_post_for_consultations bpc LEFT JOIN project.users u ON bpc.users_id = u.id LEFT JOIN project.blog_post_answers bpa ON bpc.id = bpa.blogpostconsid WHERE bpc.date_askes >= current_date - interval '6 months' GROUP BY bpc.id, bpc.date_askes, bpc.title, bpc.description, u.id, u.name ORDER BY answers_count DESC LIMIT 1; }}} == Прикажување на вработен (доктор) кој што има напишено најмногу извештаи за едно исто милениче. {{{ WITH DoctorReportsCount AS ( SELECT u.id AS doctor_id, u.name AS doctor_name, r.petsID AS pet_id, COUNT(r.id) AS reports_count FROM project.reports r LEFT JOIN project.users u ON r.usersID = u.id GROUP BY u.id, u.name, r.petsID ORDER BY reports_count DESC LIMIT 1 ) SELECT drc.doctor_id, drc.doctor_name, drc.pet_id, drc.reports_count FROM DoctorReportsCount drc; }}} == Прикажување на продукт кој е прв додаден во системот за продажба и за него постојат најмалку нарачки кои биле направени од корисниците. {{{ SELECT p.id AS product_id, p.name AS product_name, p.description AS product_description, p.price AS product_price, MIN(o.quantity) AS sold_quantity, p.dateadded AS date_added FROM project.products p LEFT JOIN project.product_are_made_orders pamo ON p.id = pamo.id_products LEFT JOIN project.orders o ON pamo.id_orders = o.id GROUP BY p.id, p.name, p.description, p.price, p.dateadded ORDER BY sold_quantity, date_added LIMIT 1; }}} == Секој ветеринарен центар колку вкупно миленичиња примил и колку е просечната возраст во секој ветеринарен центар. {{{ SELECT vc.name AS vet_center_name, -- vc.description AS vet_center_description, COUNT(DISTINCT pvvc.id_pets) AS number_of_pets_treated, AVG(EXTRACT(YEAR FROM age(current_date, p.dateofbirthday))) AS average_pet_age FROM project.vet_centers vc JOIN project.pets_visit_vet_centers pvvc ON vc.id = pvvc.id_vet_centers JOIN project.pets p ON pvvc.id_pets = p.id GROUP BY vc.id, vc.name, vc.description ORDER BY number_of_pets_treated DESC; }}} == Прикажување на мобилен оператор на кој што се најчесто корисниците претплатници. Доколку мобилниот оператор **Telecom** започнува на 072 или 071, мобилниот оператор **VIP** започнува на 078 или 075. {{{ SELECT CASE WHEN SUBSTRING(u.number, 1, 3) IN ('072', '071') THEN 'Telecom' WHEN SUBSTRING(u.number, 1, 3) IN ('078', '075') THEN 'VIP' ELSE 'Other Operator' END AS mobile_operator, COUNT(u.id) AS number_of_users FROM project.users u where u.number LIKE '072%' OR u.number LIKE '071%' OR u.number LIKE '078%' OR u.number LIKE '075%' GROUP BY mobile_operator ORDER BY number_of_users DESC; }}} == Прикажување на ветеринарен центар кој што нуди највисока плата за позицијата **doctor**. {{{ SELECT vc.name AS name_vet_center, MAX(CAST(j.predictedSalery AS varchar)) AS highest_salary FROM project.vet_centers vc JOIN project.jobs j ON vc.id = j.vetcentersid WHERE j.description = 'doctor' GROUP BY vc.name ORDER by highest_salary DESC LIMIT 1; }}} == Прикажување на ветеринарни центри кои што корисникот може да ги посети доколку живее во Охрид. {{{ SELECT vc.name AS vet_center_name, vc.description AS vet_center_description, vc.adress AS vet_center_address, vc.phoneNumber AS vet_center_phone_number FROM project.vet_centers vc JOIN project.cities c ON vc.citiesID = c.ID WHERE c.name = 'Ohrid'; }}} == Прикажување кој корисник има најголем број на миленичиња. {{{ SELECT u.name, u.lastname, COUNT(p.ID) AS pet_count FROM project.users u JOIN project.pets p ON u.ID = p.usersID GROUP BY u.ID ORDER BY pet_count DESC LIMIT 1; }}} == Прикажување која раса е најчесто застапена. {{{ SELECT b.name AS breed_name, COUNT(p.ID) AS pet_count FROM project.breeds b JOIN project.type_of_pets t ON b.ID = t.ID JOIN project.pets p ON t.ID = p.typeOfPetsID GROUP BY b.ID ORDER BY pet_count DESC LIMIT 1; }}} == Прикажување која терапија за која дијагноза е препишена и од кој доктор е препишена. {{{ SELECT t.description AS therapy_description, d.description AS diagnosis_description, u.name AS doctor_name, u.lastname AS doctor_lastname FROM project.therapy t JOIN project.diagnostics d ON d.id = t.diagnosticsID JOIN project.users u ON u.id = d.usersID JOIN project.pets p ON p.id = d.usersID ORDER BY t.id; }}} == Прикажување на возраста на секое милениче. {{{ SELECT p.ID AS pet_id, p.color, p.description AS pet_description, p.dateOfBirthday, AGE(current_date, p.dateOfBirthday) AS pet_age FROM project.pets p; }}} == Прикажување на држава која е најчест производител на лекови. {{{ select state as country, COUNT(*) as most_common_manufacturer from project.manufacturers group by state order by most_common_manufacturer desc limit 1; }}} == Прикажување на продукти кои што би можело да се потрошат најбрзо бидејќи има побарано најголема количина за нив. {{{ SELECT p.name AS product_name, p.description AS product_description, AVG(o.quantity) AS avg_sales_quantity FROM project.products p JOIN project.product_are_made_orders po ON p.ID = po.id_products JOIN project.orders o ON po.id_orders = o.ID GROUP BY p.ID ORDER BY avg_sales_quantity DESC; }}}