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

你可能感兴趣的:(oracle,数据库,SQL)