| 1 | = Напредни извештаи од базата (SQL и складирани процедури) = |
| 2 | |
| 3 | === Извештај кој прикажува кои продукти дадена индустрија имаат најголема разлика во просечната оценка на рецензија споредено помеѓу последните 30 дена и пред тој датум, сортирано по големина=== |
| 4 | |
| 5 | {{{#!sql |
| 6 | SELECT |
| 7 | last_month_avg_scores.productdomainname AS productdomainname, |
| 8 | all_previous_month_avg_scores.months_avg_score - last_month_avg_scores.months_avg_score AS avg_score_difference |
| 9 | FROM |
| 10 | ( |
| 11 | SELECT |
| 12 | pdi.productdomainname, |
| 13 | AVG(r.reviewscore) AS months_avg_score |
| 14 | FROM |
| 15 | reviews AS r |
| 16 | JOIN |
| 17 | productdomainindustry AS pdi ON r.productdomainname = pdi.productdomainname |
| 18 | WHERE |
| 19 | pdi.industry = 'Specific Industry' |
| 20 | AND dateofreview > now() - interval '30 days' |
| 21 | GROUP BY |
| 22 | pdi.productdomainname |
| 23 | ) AS last_month_avg_scores |
| 24 | JOIN |
| 25 | ( |
| 26 | SELECT |
| 27 | pdi.productdomainname, |
| 28 | AVG(r.reviewscore) AS months_avg_score |
| 29 | FROM |
| 30 | reviews AS r |
| 31 | JOIN |
| 32 | productdomainindustry AS pdi ON r.productdomainname = pdi.productdomainname |
| 33 | WHERE |
| 34 | pdi.industry = 'Specific Industry' |
| 35 | AND dateofreview <= now() - interval '30 days' |
| 36 | GROUP BY |
| 37 | pdi.productdomainname |
| 38 | ) AS all_previous_month_avg_scores ON last_month_avg_scores.productdomainname = all_previous_month_avg_scores.productdomainname |
| 39 | ORDER BY |
| 40 | avg_score_difference DESC; |
| 41 | }}} |
| 42 | |
| 43 | |
| 44 | === Извештај кој за продуктите со мнозинство негативни рецензии, се прикажуваат рецезентите кои се на c-level позиција и кои имаат linkedin профил, заедно со пораките која им sе пратени === |
| 45 | |
| 46 | {{{#!sql |
| 47 | select |
| 48 | p.domainname, |
| 49 | negativereviews, |
| 50 | influentialreviewer.firstname, |
| 51 | influentialreviewer.lastname, |
| 52 | influentialreviewer.emailaddress, |
| 53 | influentialreviewer.linkedinprofile, |
| 54 | ms.messagetext |
| 55 | from |
| 56 | (select |
| 57 | r.productdomainname, |
| 58 | count(r.id) as negativereviews |
| 59 | from |
| 60 | review r |
| 61 | where |
| 62 | r.reviewscore = 1 |
| 63 | or |
| 64 | r.sentiment = 'negative' |
| 65 | group by |
| 66 | r.productdomainname |
| 67 | having |
| 68 | count(r.id) > (select count(*) / 2 from review where productdomainname = r.productdomainname) |
| 69 | ) as subquery1 |
| 70 | |
| 71 | join |
| 72 | (select |
| 73 | rev.firstname, |
| 74 | rev.lastname, |
| 75 | rev.emailaddress, |
| 76 | sm.socialmedialink as linkedinprofile, |
| 77 | r.productdomainname |
| 78 | from |
| 79 | reviewer rev |
| 80 | join |
| 81 | socialmediaaccounts sm on rev.id = sm.reviewerid |
| 82 | join |
| 83 | review r on rev.id = r.reviewerid |
| 84 | where |
| 85 | sm.socialmediatype = 'linkedin' |
| 86 | and |
| 87 | rev.position in ('CEO','CFO','COO','CTO','CIO','CMO','CCO','CRO','CHRO','CPO','CSO','CLO','CAO','CDO','CISO','CVO','CKO','CBO','CPEO','CCIO') |
| 88 | ) as influentialreviewer on subquery1.productdomainname = influentialreviewer.productdomainname |
| 89 | left join |
| 90 | messagesequence ms on influentialreviewer.id = ms.recieverId |
| 91 | join |
| 92 | industry i on p.productdomainname = i.productdomainname |
| 93 | where |
| 94 | i.industryname = 'specific industry'; |
| 95 | }}} |
| 96 | |