SQL-每日一题【1251. 平均售价】

题目

Table: Prices

Table: UnitsSold

编写SQL查询以查找每种产品的平均售价。
average_price 应该四舍五入到小数点后两位。

查询结果格式如下例所示:

解题思路

1.题目要求查询每种产品的平均售价。给出了两个表,我们用聚合查询来解决此问题。

2.首先我们将两个表做连接,连接条件是 p.product_id = u.product_id,然后我们在筛选出出售日期在保质期内的记录,where u.purchase_date >= p.start_date and u.purchase_date <= p.end_date ,最后我们使用sum()函数计算出平均值,再用round()函数保留两位小数即可。

代码实现

sql 复制代码
select p.product_id, round(sum(p.price * u.units) / sum(u.units), 2) average_price
from Prices p
join UnitsSold u 
on p.product_id = u.product_id
where u.purchase_date >= p.start_date
and u.purchase_date <= p.end_date
group by product_id

测试结果

相关推荐
鸽芷咕5 分钟前
Oracle 替代工程实践深度解析:金仓全链路工程实践 —— 从评估决策到平滑上线的深度技术攻坚
数据库·oracle
im_AMBER12 分钟前
Leetcode 153 课程表 | 腐烂的橘子
开发语言·算法·leetcode·深度优先·图搜索
paeamecium14 分钟前
【PAT甲级真题】- Reversing Linked List (25)
数据结构·c++·算法·pat
田梓燊16 分钟前
leetcode 73
算法·leetcode·职场和发展
gushinghsjj19 分钟前
元数据管理包含哪些?元数据管理如何支持数据分析?
数据库·oracle·数据分析
PawSQL22 分钟前
PawSQL平台功能月度更新 | 2026年2月
sql·pawsql·sql审核
ZPC821023 分钟前
相机接入ROS2 流程及问题排查
人工智能·算法·机器人
2501_9403152624 分钟前
【无标题】两个相同字符串中不同字符的个数
算法·哈希算法·散列表
不愿透露姓名的大鹏24 分钟前
MySQL InnoDB核心参数深度优化/性能调优
运维·服务器·数据库·mysql