Changes between Version 7 and Version 8 of AnalyticalStatisticalQuerying
- Timestamp:
- 09/23/25 19:08:50 (45 hours ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AnalyticalStatisticalQuerying
v7 v8 22 22 GROUP BY dates.operation_date 23 23 ORDER BY dates.operation_date DESC; 24 }}} 25 26 Relational algebra: 27 28 We will use: 29 30 The generated series as given in our relational algebra and noted as D, Reservations as R, Orders as O, OrderItems as OI, Shifts as S and Assignments as A 31 32 {{{ 33 operation_dateℑdates_.operation_date, total_reservations=COUNT(R.id),total_orders=COUNT(O.id),unique_costumers=COUNT(R.user_id), active_employees=COUNT(A.employee_id), daily_revenue=SUM(OI.quantity*OI.price) 34 35 (((((R ⟕ r.datetime = dates.operation_date D) ⟕ dates.operation_date=o.datetime O) ⟕ o.id=oi.order_id OI) ⟕ dates.operation_date=s.date S) ⟕ s.id=a.shift_id A) 36 24 37 }}} 25 38 … … 47 60 }}} 48 61 62 Relational algebra: 63 64 We will use: 65 66 OnlineOrders as OO, Payments as P, Orders as O and TabORders as TORD 67 {{{ 68 π order_type=’OnlineOrders’,total_revenue=SUM(amount)(σ p_start_date<=o.o_timestamp<=p_end_date(OO⋈OO.order_id=O.id(P⋈P.order_id=O.id O)) 69 70 U 71 72 π order_type=’TabOrders’,total_revenue=SUM(amount)(σ p_start_date<=o.o_timestamp<=p_end_date(TORD⋈TORD.order_id=O.order_id (P ⋈P.order_id=O.id O)) 73 }}} 74 49 75 **Top 10 products by revenue ** 50 76 {{{ … … 64 90 ORDER BY total_revenue DESC 65 91 LIMIT 10; 92 }}} 93 94 Relational algebra: 95 96 We will use: 97 98 Products as P, OrderItems as OI, Category as C and TabOrders as TORD 99 {{{ 100 p.id,p.name,c.nameℑproduct_id=P.id,product_name=P.name,category_name=C.name,total_quantity=SUM(oi.quantity), revenue_share_percent=100.0 * SUM(OI.quantity * OI.price) / SUM(SUM(OI.quantity * OI.price)) 101 102 (σ O.datetime>= current_date-90(((C ⋈P.category_id = c_id P) ⋈P.id=OI.product_id OI) ⋈o.id=oi.order_id O)) 66 103 }}} 67 104 … … 93 130 }}} 94 131 132 Relational algebra: 133 134 We refer Shift as S, OrderItems as OI, Orders as O 135 {{{ 136 DSP = πstart_t=start_time,end_t=end_time(S) 137 138 period, shift_periodℱtotal_revenue=SUM(OI.price*OI.quantity) 139 140 ((O ⋈ O.id = OI.order_id OI) ⋈ O.datetime::time>DSP.start_t ⋀ O.datetime::time<DSP.end_t DSP)) 141 }}} 95 142 ** Managers' shifts above monthly average revenue ** 96 143 {{{ … … 148 195 WHERE sr.shift_revenue > ma.avg_revenue_per_shift 149 196 ORDER BY period DESC, sr.shift_revenue DESC, sr.shift_date DESC; 197 }}} 198 199 Relational algebra: 200 201 We use manager_worked_shifts as MWS, shift_revenue as SR mothly_avg as MA, Shifts as S, Assignment as A, Managers as M, Employees as E, Users as U and end_date= (date_trunc('year', CURRENT_DATE) + INTERVAL '1 year') 202 {{{ 203 MWS = π shift_id=S.id, S.date, S.start_time,S.end_time,manager_id=A.employee_id 204 (σS.date>=date⋀ S.date<end_date)((A ⋈S.id=A.shift_id S) ⋈ A.employee_id= M.employee_id M)) 205 206 SR =mws.shift_id, month_start, mws.date, mws.start_time, mws.end_time, mws.manager_id ℱshift_revenue = SUM(oi.quantity * oi.price) 207 (( MWS ⟕ o.datetime::date=mws.date ⋀ o.datetime::time >= mws.start_time ⋀ O.datetime::time < MWS.end_time O) ⟕ O.id=OI.id OI) 208 209 MA = month_start ℱ avg_revenue_per_shift= AVG(SR.shift_revenue)(SR) 210 211 π period=sr.month_start,sr.shift_id,sr.shift_date, shift_start_time=sr.start_time, shift_end_time=sr.send_time, manager_email = u.email,sr.shift_revenue, ma.avg_revenue_per_shift, above_by = sr.shift_revenue - ma.avg_revenue_per_shift 212 (σ sr.shift_revenue > ma.avg_revenue_per_shift((((SR ⋈SR.month_start=MA.month_start MA) ⋈ SR.manager_id=M.employee_id M) ⋈ m.employee_id=e.user_id E) ⋈ e.user_id=u.id U)) 150 213 }}} 151 214