首页 > 其他分享 >1251. 平均售价

1251. 平均售价

时间:2023-05-07 10:23:49浏览次数:33  
标签:02 product price 2019 1251 date 平均 id 售价

【题目】

Table: Prices

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| product_id    | int     |
| start_date    | date    |
| end_date      | date    |
| price         | int     |
+---------------+---------+
(product_id,start_date,end_date) 是 Prices 表的主键。
Prices 表的每一行表示的是某个产品在一段时期内的价格。
每个产品的对应时间段是不会重叠的,这也意味着同一个产品的价格时段不会出现交叉。

 

Table: UnitsSold

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| product_id    | int     |
| purchase_date | date    |
| units         | int     |
+---------------+---------+
UnitsSold 表没有主键,它可能包含重复项。
UnitsSold 表的每一行表示的是每种产品的出售日期,单位和产品 id。

 

编写SQL查询以查找每种产品的平均售价。
average_price 应该四舍五入到小数点后两位。
查询结果格式如下例所示:

Prices table:
+------------+------------+------------+--------+
| product_id | start_date | end_date   | price  |
+------------+------------+------------+--------+
| 1          | 2019-02-17 | 2019-02-28 | 5      |
| 1          | 2019-03-01 | 2019-03-22 | 20     |
| 2          | 2019-02-01 | 2019-02-20 | 15     |
| 2          | 2019-02-21 | 2019-03-31 | 30     |
+------------+------------+------------+--------+
 
UnitsSold table:
+------------+---------------+-------+
| product_id | purchase_date | units |
+------------+---------------+-------+
| 1          | 2019-02-25    | 100   |
| 1          | 2019-03-01    | 15    |
| 2          | 2019-02-10    | 200   |
| 2          | 2019-03-22    | 30    |
+------------+---------------+-------+

Result table:
+------------+---------------+
| product_id | average_price |
+------------+---------------+
| 1          | 6.96          |
| 2          | 16.96         |
+------------+---------------+
平均售价 = 产品总价 / 销售的产品数量。
产品 1 的平均售价 = ((100 * 5)+(15 * 20) )/ 115 = 6.96
产品 2 的平均售价 = ((200 * 15)+(30 * 30) )/ 230 = 16.96

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/average-selling-price
【思路】

内连接,按条件构建中间表,然后用round(sum(),2)计算均值。group by,按id分组

sum(price*units)计算同一id的总价,sum(units)计算同一id的总销售额

【代码】

SELECT UnitsSold.product_id,ROUND(sum(price*units)/sum(units),2) average_price 
FROM Prices inner join UnitsSold on Prices.product_id=UnitsSold.product_id
WHERE purchase_date>=start_date and purchase_date<=end_date
group by product_id;

 

标签:02,product,price,2019,1251,date,平均,id,售价
From: https://www.cnblogs.com/End1ess/p/17378961.html

相关文章

  • 643. 子数组最大平均数 I
    给你一个由n个元素组成的整数数组nums和一个整数k。请你找出平均数最大且长度为k的连续子数组,并输出该最大平均数。任何误差小于10-5的答案都将被视为正确答案。 示例1:输入:nums=[1,12,-5,-6,50,3],k=4输出:12.75解释:最大平均数(12-5-6+50)/4=51/4=12.7......
  • 不使用内置函数的情况下,如何使用Python实现求平均值、最大值和最小值?
    今日鸡汤寂寂竟何待,朝朝空自归。大家好,我是Python进阶者。一、前言昨天在Python最强王者交流群【鱼鱼鱼也不】问了一个Pandas处理的问题,下图是讨论截图:下图是他的原始数据:其实一开始是有点难以理解的。其实这个就是想判断两列的情况,用一列值填充另一列值。二、实现过程这里【猫药......
  • java8 lambda 求list最大值、最小值、平均值、求和、中位数、属性排序(空指针异常,空值
    点击查看代码importorg.junit.Test;importjava.text.SimpleDateFormat;importjava.util.*;importjava.util.stream.Collectors;importstaticjava.util.Comparator.comparingLong;importstaticjava.util.stream.Collectors.*;/***@Author:*@Date:2018/12......
  • 数据计算--求和与平均值
    1.方法说明: 2.按行相加求和: 3.按列计算平均值: ......
  • Excel多列求平均值
    数据源如下所示需求描述:现在需要根据水果名称和月份求出对应水果的平均单价一、添加一列辅助列(=A2&B2) 二、Ctrl+A选择所有数据插入数据透视表,选择辅助列到行,客单价到值(值字段设置选择平均值) 三、回到最开始的数据源把数据复制到新的sheet,选择①数据②重复项③删除......
  • 移动平均一
    移动平均,滤波,平滑等,这些概念其实都大同小异,其作用都是希望能把信号数值中的毛刺、噪点,给去掉抹平捋顺,留下真值。这类的程序和工作做了不少,一直没有机会总结归纳整理下。趁着这次空挡的时间,写了一个算法调试工具,顺便写篇博客总结一下。至于写了算法调试工具的目的,主要是为了提高效......
  • 4.2.3 算平均数
       ......
  • Python ArcPy批量计算多时相遥感影像的各项元平均值
      本文介绍基于Python中ArcPy模块,对大量长时间序列栅格遥感影像文件的每一个像元进行多时序平均值的求取。  在遥感应用中,我们经常需要对某一景遥感影像中的全部像元的像素值进行平均值求取——这一操作很好实现,基于ArcMap软件或者简单的Python代码就可以实现;但有时候,我们会......
  • 求两个整数的平均值
    1普通实现1求两个整数的平均值,最简单的实现方法就是两个数相加再除以二。intmean(intx,inty){return(x+y)/2;}如果mean的参数是INT_MAX呢?就溢出了.2普通实现2我们使用右移运算符。intmean1(intx,inty){return(x+y)>>1;}类似3普通实现3那么......
  • 青春没有售价,打车直达拉萨……
    “青春没有售价,打车直达拉萨……”在某短视频平台,最近不少有网友跟风晒出了从全国各地尝试呼叫滴滴网约车前往西藏拉萨的视频,车费少则几千元,多则万余元。打车去拉萨火了?4月13日,滴滴出行在官方微博对此进行了回应。滴滴出行表示,4月5日以来,打车前往拉萨的超远距离订单呼叫显著增加......