Oracle下统计平均用餐时间、用餐总量、好评率
目录
- 情景
- SQL
情景
有一张用餐日志表meal_log,部分字段如下
meal:客人点了什么套餐,
start_time: 用餐时间,哪天几点几分来店里吃饭
meal_time: 用餐耗时,一顿饭吃了多少分钟
mark: 客人评价,10是满意,0是不满意
统计12.01日这天,套餐1,套餐2,套餐3,…套餐6
这6个套餐各自的购买量、平均用餐时间、满意率(10分评价的次数/购买总量)
Oracle数据库
SQL
SELECT
meal 套餐,
COUNT( * ) 用餐总量,
AVG(meal_time) 平均用餐耗时,
( SUM(CASE WHEN mark = '10' THEN 1 ELSE 0 END ) / COUNT( * ) ) * 100 满意率
FROM
meal_log
WHERE
meal IN ( '套餐1', '套餐2', '套餐3', '套餐4', '套餐5', '套餐6' )
AND start_time > ( '2023/12/01 00:00:00', 'YYYY/MM/DD HH24:MI:ss' )
AND start_time < ( '2023/12/02 00:00:00', 'YYYY/MM/DD HH24:MI:ss' )
GROUP BY
meal