大数据量mysql

1.来自百度渠道的购买成功和失败率是多少?

思路:先找出百度渠道的总数(Channel_id=2000),成功的数,就可以分别算出成功率和失败率。

SELECT total,(count*100/total)||"%" ,(100-(count*100/total))||"%" FROM     
 (SELECT count(*) as count FROM 
  (SELECT DISTINCT User_id FROM UserActions WHERE Channel_id=2000 AND Action_id=4005)) t1
LEFT JOIN 
 (SELECT count(*) as total  FROM 
  (SELECT DISTINCT User_id FROM UserActions  WHERE Channel_id=2000)) t2

容易遗漏的是:DISTINCT User_id。目的是将顾客去重。

技巧:如果两个表t1,t2都只含有一条数据,那么将他们直接联表就能组装成一个新的表,无需ON t1.xx=t2.xx

计算成功率:

(count*100/total)||"%"  ---其实就是把百分比的数字和百分号连接

2.各个渠道占比(要%)

SELECT t1.Channel_id,((t1.count*100)/t2.total) || "%" FROM
 (SELECT Channel_id, count(*) as count 
  FROM UserActions 
  WHERE Action_id in (4001) 
  GROUP BY Channel_id) as t1 
LEFT JOIN
 (SELECT Channel_id, count(*) as total 
  FROM UserActions 
  WHERE Action_id in (4001)) as t2  

思路:把各个渠道计算出来,再把总数计算出来,用LEFT JOIN将数据连接起来。在连接后的新的表上计算占比。

注意:1)4001是查看,用它来表示引流的量

           2)直接得到渠道代号就可,不需要连接Channels表得到渠道名称

3.哪个品牌最火,哪个最差(要名字和数量):

select Brand_name,max(count) as count from 
(select Brand_id,Brand_name,count(*) as count 
 from UserActions t1 left join   ----t1是UserActions的别名,可以不加as
 (select * from Product left join Brands 
  on Product.Brand_id = Brands.Brand_id) as t2 
 on t1.Product_id=t2.Product_id 
 group by Brand_id 
 having Brand_id is not null) as bc

4.用户行为漏斗数据 

SELECT t1.Action_id, Action_name,count FROM 
 (select count(*) as count, Action_id 
  FROM UserActions 
  WEHRE Action_id in (4001,4003,4004,4005) 
  GROUP BY Action_id) t1 
LEFT JOIN 
ActionTypes t2 on t1.Action_id = t2.Action_id 

所谓漏斗就是从点击到购买的漏斗,不包括4002收藏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当需要在大数据MySQL表中添加字段时,一般采取以下步骤: 1. 首先,确认新字段的数据类型和长度。需要考虑新字段所存储的数据类型和取值范围,选择合适的数据类型,以及确定字段的长度,以确保数据的准确性和完整性。 2. 在确认新字段的数据类型和长度后,可以使用ALTER TABLE语句来添加新字段。ALTER TABLE语句用于修改表的结构,包括添加字段、删除字段、修改字段等。语法如下: `ALTER TABLE 表名 ADD 列名 数据类型 [约束条件] [FIRST | AFTER 上一个字段];` 其中,表名为要进行修改的表名称,列名为新字段的名称,数据类型为新字段的数据类型,约束条件为字段的约束条件,如NOT NULL,UNIQUE等。FIRST和AFTER用于确定新字段的位置,可以是第一个字段或者在某个已有字段后进行插入。 3. 执行ALTER TABLE语句后,MySQL将执行表的结构变更操作,添加新字段到表中。在表数据较大的情况下,这个过程可能需要一定时间,取决于服务器的性能和数据的大小。 4. 在添加新字段后,需要考虑对该字段进行相应的操作,如插入默认值、更新现有数据等。可以使用UPDATE语句批更新现有数据,以确保新字段的数据和已存在的数据保持一致。 需要注意的是,在进行表结构变更操作时,建议先备份数据,以避免意外情况造成数据丢失或损坏。另外,在大数据表上进行结构变更操作时,建议在低峰期进行,以减少对系统性能的影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值