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

测试结果

相关推荐
波波0075 分钟前
每日一题:.NET 中什么是 LOH(大对象堆)?为什么频繁使用大数组或大字符串可能导致性能问题?如何优化?
java·jvm·算法
小北方城市网5 分钟前
JVM 调优实战指南:从 GC 频繁到性能稳定
jvm·数据库·spring boot·后端·mysql·mybatis
独自破碎E5 分钟前
动态规划-正则表达式匹配
算法·正则表达式·动态规划
Gofarlic_OMS5 分钟前
Fluent许可证使用合规性报告自动化生成系统
java·大数据·运维·人工智能·算法·matlab·自动化
漫随流水6 分钟前
leetcode回溯算法(131.分割回文串)
数据结构·算法·leetcode·回溯算法
wWYy.8 分钟前
详解redis(9):数据结构set
数据库·redis·缓存
南棱笑笑生8 分钟前
20260123让天启AIO-3576Q38开发板在天启Buildroot下适配摄像头模块8ms1m【预览】
java·前端·数据库·rockchip
人道领域8 分钟前
javaWeb从入门到进阶(MYSQL-DQL)
数据库·mysql
我家大宝最可爱10 分钟前
强化学习基础-重要性采样
算法·机器学习·概率论
wWYy.12 分钟前
详解redis(10):数据结构Zset
数据结构·数据库·redis