淘宝做网站为什么那么便宜,设计微信公众号的网站吗,域名注册后怎么做网站,wordpress 三站合一题目
表: Customer 你是餐馆的老板#xff0c;现在你想分析一下可能的营业额变化增长#xff08;每天至少有一位顾客#xff09;。
计算以 7 天#xff08;某日期 该日期前的 6 天#xff09;为一个时间段的顾客消费平均值。average_amount 要 保留两位小数。
结果按 …题目
表: Customer 你是餐馆的老板现在你想分析一下可能的营业额变化增长每天至少有一位顾客。
计算以 7 天某日期 该日期前的 6 天为一个时间段的顾客消费平均值。average_amount 要 保留两位小数。
结果按 visited_on 升序排序。
返回结果格式的例子如下。 示例 1: 解题思路 1.题目要求我们分析一下可能的营业额变化增长也就是计算一下以 7 天某日期 该日期前的 6 天为一个时间段的顾客消费平均值。 2.首先我们从 Customer 表中选择 visited_on 列的值并使用 GROUP BY 子句按 visited_on进行分组。同时使用 SUM 函数计算每个 visited_on 值对应的 amount 列的总和并将其命名为 amount。 3.然后我们使用SUM函数和窗口函数来计算visited_on列对应的amount列在过去6天内的累计总和。 4.最后使用WHERE子句来筛选出visited_on值与最早的visited_on值之间的天数大于等于6的记录。通过使用datediff函数来计算visited_on与最早visited_on值之间的天数并与6进行比较来实现的。 5.最终的结果将包含visited_on、sum_amount和average_amount三列的值其中sum_amount是visited_on对应的amount列在过去6天内的累计总和average_amount是每天的平均amount值。 代码实现
SELECT Distinct visited_on, sum_amount AS amount, ROUND(sum_amount/7, 2) AS average_amount
FROM(SELECT visited_on,SUM(amount) OVER (ORDER BY visited_on RANGE BETWEEN INTERVAL 6 DAYPRECEDING AND CURRENT ROW) AS sum_amountFROM(SELECT visited_on,SUM(amount) AS amountFROM CustomerGROUP BY visited_on)a
)b
WHERE datediff(visited_on,(SELECT MIN(visited_on) FROM Customer)) 6测试结果