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

测试结果

相关推荐
笨笨没好名字1 分钟前
AI4CAD:用python+creo实现批量参数建模(creo二次开发示例)
数据库·python·microsoft
f***45322 分钟前
PostgreSQL常用时间函数与时间计算提取示例说明
数据库·postgresql
e***v3565 分钟前
redis分页查询
数据库·redis·缓存
9***446310 分钟前
MSSQL2022的一个错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序
数据库·microsoft
红石榴花生油10 分钟前
RBAC权限配置 核心笔记
数据库·windows·笔记
TracyCoder12311 分钟前
MySQL 实战宝典(九):Sharding-JDBC分库分表框架解析
数据库·mysql
一只乔哇噻14 分钟前
java后端工程师+AI大模型进修ing(研一版‖day56)
java·开发语言·学习·算法·语言模型
W***533114 分钟前
MySQL 与 Redis 的数据一致性问题
数据库·redis·mysql
小熳芋20 分钟前
排序链表- python-非进阶做法
数据结构·算法·链表
n***44321 分钟前
mysql查看binlog日志
数据库·mysql