表1:商品表

表2:商品售卖表

需求:算出商品的平均点击率、平均销售、商品受欢迎度

1.使用inner join查出每件商品的点击率和销售额度

select a.ptype, a.pname, a.pview, ifnull(b.sales, 0) as selas
from test a
left join test_sell b on a.pid = b.id
order by a.ptype desc, a.pview DESC

结果:

2.查出每个商品类的平均点击率

 select ptype, sum(pview) / count(*) as avg_pview from test group by ptype

3.查出每个商品类的平均销售额度

     select ptype,round(sum(selas) / count(*), 0) as avg_sales
from (select a.ptype, a.pname, a.pview, ifnull(b.sales, 0) as selas
from test a
left join test_sell b on a.pid = b.id
order by a.ptype desc, a.pview DESC) a
where a.selas > 0
group by ptype

 

总sql:

select a.ptype,pname,pview,avg_pview,(pview/avg_pview)*0.3,selas,avg_sales,(selas/avg_sales)*0.7,(pview/avg_pview)*0.3+(selas/avg_sales)*0.7
from (select a.ptype, a.pname, a.pview, ifnull(b.sales, 0) as selas
from test a
left join test_sell b on a.pid = b.id
order by a.ptype desc, a.pview DESC) a,
(
select ptype, sum(pview) / count(*) as avg_pview from test group by ptype) b,
(select ptype,round(sum(selas) / count(*), 1) as avg_sales
from (select a.ptype, a.pname, a.pview, ifnull(b.sales, 0) as selas
from test a
left join test_sell b on a.pid = b.id
order by a.ptype desc, a.pview DESC) a
where a.selas > 0
group by ptype) c where a.ptype = b.ptype
and b.ptype = c.ptype order by a.ptype;

总结:通过点击率和销售量的权重,得出商品的欢迎度,

sql--测试商品的重要度,是否需要及时补货的更多相关文章

  1. Red Gate系列之六 SQL Test 1.0.12.3 Edition SQL测试工具 完全破解+使用教程

    原文:Red Gate系列之六 SQL Test 1.0.12.3 Edition SQL测试工具 完全破解+使用教程 Red Gate系列之六 SQL Test 1.0.12.3 Edition S ...

  2. C#和SQL实现的字符串相似度计算代码分享

    http://www.jb51.net/article/55941.htm C#实现: 复制代码 代码如下: #region 计算字符串相似度        /// <summary>   ...

  3. Oracle 存储过程,临时表,动态SQL测试

    --创建事务级别的结果临时表 create global temporary table tmp_yshy( c1 ), c2 ) )on commit delete rows; --创建事务级别的存 ...

  4. SQL 测试

    1.SQL 指的是? 您的回答:Structured Query Language 2.哪个 SQL 语句用于从数据库中提取数据? 您的回答:SELECT 3.哪条 SQL 语句用于更新数据库中的数据 ...

  5. Hive SQL测试

    在spark的空表test上进行运算,注意结果差异: ,age)) as ages from test group by name;//空 ,age)) as ages from test group ...

  6. noip2017集训测试赛(三) Problem B: mex [补档]

    Description 给你一个无限长的数组,初始的时候都为0,有3种操作: 操作1是把给定区间[l,r][l,r] 设为1, 操作2是把给定区间[l,r][l,r] 设为0, 操作3把给定区间[l, ...

  7. Java生鲜电商平台-订单配送模块的架构与设计

    Java生鲜电商平台-订单配送模块的架构与设计 生鲜电商系统最终的目的还是用户下单支付购买, 所以订单管理系统是电商系统中最为复杂的系统,其作为中枢决定着整个商城的运转, 本文将对于生鲜类电商平台的订 ...

  8. C#开发微信门户及应用(23)-微信小店商品管理接口的封装和测试

    在上篇<C#开发微信门户及应用(22)-微信小店的开发和使用>里面介绍了一些微信小店的基础知识,以及对应的对象模型,本篇继续微信小店的主题,介绍其中API接口的封装和测试使用.微信小店的相 ...

  9. SAP 查询分析器,查询报表自动生成,SQL查询测试实现说明(转)

    在日常的SAP开发和应用中,经常需要通过查询SAP数据表来处理日常业务,比如:数据对账.报表SQL测试.SAP查询功能开发等.通过开发SAP查询分析器,SAP实施和开发人员,可以在较短的时间内查询到需 ...

随机推荐

  1. linux操作提示:“Can't open file for writing”或“operation not permitted”的解决办法

    在linux上使用vi命令修改一个文件内容的时候,发现无法保存,每次写完使用":q!"命令可以正常退出但是使用":wq!"命令保存文件并退出时出现一下信息提示: ...

  2. 洛谷-P5357-【模板】AC自动机(二次加强版)

    题目传送门 -------------------------------------- 过年在家无聊补一下这周做的几道AC自动机的模板题 sol:AC自动机,还是要解决跳fail边产生的重复访问,但 ...

  3. 37)PHP,获取数据库数据并在html中显示(晋级4)

    我的php文件和html文件的位置关系: 然后我的主php文件是b.php,我的那个配置文件是BBB.php,我的html文件是login.html 然后我的b.php代码展示: <?php c ...

  4. Linux 杀死进程方法大全(kill,killall)

    杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志.   首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令:   # kill -pid   注释:标准的kill命令通常 ...

  5. [LC] 59. Spiral Matrix II

    Given a positive integer n, generate a square matrix filled with elements from 1 to n2 in spiral ord ...

  6. peculiar|retreated|civilize|conceivable

    ADJ-GRADED 奇怪的:古怪的:不寻常的If you describe someone or something as peculiar, you think that they are str ...

  7. dim|lobby|trifle|

    ADJ-GRADED 勉强的;不情愿的If you are reluctant to do something, you are unwilling to do it and hesitate bef ...

  8. HDU1166 敌兵布阵 [线段树模板]

    题意:在序列中修改单点和查询区间和 #include<iostream> #include<cstdio> #include<cstring> #define ls ...

  9. 四、RabbitMQ Exchange类型

    RabbitMQ整体上是一个生产者与消费者模型,主要负责接收.存储和转发消息.可以把消息传递的过程想象成:当你将一个包裹送到邮局,邮局会暂存并最终将邮件通过邮递员送到收件人的手上,RabbitMQ就好 ...

  10. 解决Navicat无法连接到MySQL的问题

    解决Navicat无法连接到MySQL的问题 问题一:本地IP(xxx.xxx.xxx.xxx)没有访问远程数据库的权限.于是下面开启本地IP(xxx.xxx.xxx.xxx)对远程mysql数据库的 ...