码迷,mamicode.com
首页 > 数据库 > 详细

mysql乘法

时间:2020-09-18 02:31:34      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:product   等于   order by   sele   今天   购物   rom   rod   sel   

sql中有很多聚合函数,例如 COUNT、SUM、MIN 和 MAX。

但是唯独没有乘法函数,而很多朋友开发中缺需要用到这种函数,今天告诉大家一个不错的解决方案

logx+logy=logx*y

这是我们高中时期学过的对数计算,对数的相加等于指数的相乘,我们利用这个方式转换加法到乘法

实现方式,先对记录取对数log(),然后sum聚合,最后exp,结果就是记录相乘的结果

数据库:
1,客户表:a(id,name,address),字段含义:客户编号,姓名,地址
2,客户登陆日志表: b(id,time),字段含义:客户编号,登陆时间
3,商品表: c(pid,pprice),字段含义:商品编号,商品单价
4,客户购物流水表: d(id,time,pid,productnum),字段含义:客户编号,购物时间,商品编号,商品数量

1,查询姓“赵”的客户最近三天的所有登陆日志
select time from a.name,b.time,d.productnum where a.name like "赵%" and a.id=b.id and b.id=d.id;

2,查询2019年每个客户的购物数量总和
select sum(d.productnum),d.id,a.name from d left join a on d.id=a.id group by d.id ;

3,查询近30天内无购物行为的客户的最近一次登陆时间
select b.time from b,d where d.time > "2020-8-15" and d.productnum is NULL and d.id=b.id;

4,查询最近30天内购物总价排在前10名的客户姓名和各自的最新登陆时间
select a.name,b.time,exp(log(sum(d.productnum))+log(c.pid)) from a,b,d where time > "2020-8-15" group by d.id order by pid;

mysql乘法

标签:product   等于   order by   sele   今天   购物   rom   rod   sel   

原文地址:https://blog.51cto.com/13434656/2533425

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!