SQL-DAY 9(SQL应用案例:电商用户、商品、平台价值分析)

2023-11-11


1.项目背景

   随着电商⾏业近⼏年的迅猛发展,电⼦商务从早些年的粗放式经营,逐步转化为精细化运营。随着平台数据量的不断积累,通过数据分析挖掘消费者的潜在需求,消费偏好成为平台运营过程中的重要环节。本项⽬基于某电商平台⽤户⾏为数据,在MySQL关系型数据库,探索⽤户⾏为规律,寻找⾼价值⽤户;分析商品特征,寻找⾼贡献商品;分析产品功能,优化产品路径。

2.使用“人货场”拆解方式建立指标体系

数据:收藏 --> 产生一条记录
   加入购物车 -->产生一条记录
   支付购买 --> 产生一条记录
在这里插入图片描述

⼈(用户)
分析方向:⽬前平台上的主⼒消费⼈群有哪些特征
     他们对货品有哪些需求
     他们活跃在哪些场
     还有哪些有消费⼒的⼈⽬前不在平台上

指标 细化指标 说明
浏览 PV (PageView)⻚⾯浏览量
UV (Unique Visitor)⼀定时间内访问⽹⻚的⼈数,独⽴访客数(⼀个⽹站或者⼀个⻚⾯/一个终端)
流量质量 PV/UV 浏览深度
ROI 投资回报率 (ROI)=年利润或年均利润/投资总额×100%
成交⽤户 新客数 ⼀般当天的算新⽤户,当⽇激活或者/新增
⽼客数
客单价 当⽇消费总价/顾客数(新+⽼)—客单价应该是稳的,突然多/少,购买⼒特别强影响客单价上升/疫情影响客单价下降
DAU ⽇活跃⽤户
MAU ⽉活跃⽤户


分析方向:供给,涉及到了货品分层,哪些是红海,哪些是蓝海,如何进⾏动态调整,要做⾃营还是平台
红海:销量高、利润少、竞争多
蓝海:销量少、利润高、竞争少

场(平台)
消费者在什么场景下,以什么样的⽅式接触到了这个商品。
平台:电商网站,往前延伸的引流,往后延伸的后期物流、售后【全域营销】
引流:内容营销,例如微信的 KOL ⽣态、小红书、微博,⽽不在电商⾃⼰的场。

3.确认问题

用户行为数据分析
1)基于漏⽃模型的⽤户购买流程各环节分析指标,确定各个环节的转换率,便于找到需要改进的环节;
2)商品分析:找出热销商品,研究热销商品特点;
3)基于RFM模型找出核心付费⽤户群,对这部分⽤户进⾏精准营销。

4.准备工作

4.1 数据读取(用户行为数据)

表结构

列名 说明
user_id 用户ID
item_id 商品ID
behavior_type 用户行为类型(1-曝光;2-购买;3-加入购物车;4-加入收藏夹)
user_geohash 地理位置
item_category 品类lD
time 用户行为发生的时间

创建表代码

use lagou;
create table o_retailers_trade_user
(
   user_id int (9),
   item_id int (9),
   behavior_type int (1),
   user_geohash varchar (14),
   item_category int (5),
   time varchar (13)
);

注意:样例数据的时间格式如:2019-12-06 02 年-月-日 小时(24进制)

4.2 数据预处理

  • 增加新列date_time(datetime),dates(char,年月日),便于后续时间维度分析
#增加新列date_time、dates
#date_time字段来自于基础数据中的time字段
alter table o_retailers_trade_user add column date_time datetime null;
update o_retailers_trade_user set date_time = str_to_date(time,'%Y-%m-%d %H');#%H可以表示0-23;⽽%h表示0-12

#dates字段来自于date_time字段
alter table o_retailers_trade_user add column dates char(10) null;
update o_retailers_trade_user set dates=date(date_time);

#查看处理完的数据
desc o_retailers_trade_user;
select * from o_retailers_trade_user limit 5;

结果展示
在这里插入图片描述

  • 重复值处理:创建新表,并插⼊⽆重复数据
#创建新表emp_trade,字段定义参照o_retailers_trade_user,并从o_retailers_trade_user查询去重后的数据插入到新表emp_trade
create table temp_trade like o_retailers_trade_user;
insert into temp_trade select distinct * from o_retailers_trade_user;

#去重前后数据量对比
select t1.原始表记录数,t2.去重后表记录数 
from (select count(*) '原始表记录数' from o_retailers_trade_user) t1,
	(select count(*) '去重后表记录数' from temp_trade) t2;

结果展示

原始表记录数 去重后表记录数
50607 47986

5.指标体系建设

5.1 用户指标体系

  人货场体系
   基础指标体系(UV/PV/留存率)+ RFM模型分析

5.1.1 基础指标

需求:UV、PV、留存率(按日)统计
   UV:统计distinct user_id 的数量,需要按日统计(分组)
   PV:统计behavior_type=1的记录数,需要按日统计(分组)
   浏览深度:PV/UV

  • UV、PV、浏览深度
# pv进⾏cout时候,如果behavior_type=1进⾏计算,否则不进⾏计算
select dates,
	count( distinct user_id ) as 'uv',
	count( if(behavior_type=1,user_id,null)) as 'pv',
	count( if(behavior_type=1,user_id,null))/count( distinct user_id ) as 'pv/uv'
from temp_trade
group by dates;

结果展示

dates uv pv pv/uv
2019-11-18 226 1332 5.8938
2019-11-19 222 1286 5.7928
2019-11-20 231 1289 5.5801
2019-11-21 232 1247 5.3750
2019-11-22 226 1203 5.3230
  • 用户留存
    方法一:用with···as···
with temp_table_trades as(
	select a.dates,
		count(distinct b.user_id) as user_count,
		count(distinct if(datediff(b.dates,a.dates)=1,b.user_id,null)) as device_v_remain1,#1日留存数
		count(distinct if(datediff(b.dates,a.dates)=2,b.user_id,null)) as device_v_remain2,#2日留存数
		count(distinct if(datediff(b.dates,a.dates)=3,b.user_id,null)) as device_v_remain3,
		count(distinct if(datediff(b.dates,a.dates)=4,b.user_id,null)) as device_v_remain4,
		count(distinct if(datediff(b.dates,a.dates)=5,b.user_id,null)) as device_v_remain5,
		count(distinct if(datediff(b.dates,a.dates)=6,b.user_id,null)) as device_v_remain6,
		count(distinct if(datediff(b.dates,a.dates)=7,b.user_id,null)) as device_v_remain7,
		count(distinct if(datediff(b.dates,a.dates)=15,b.user_id,null)) as device_v_remain15,
		count(distinct if(datediff(b.dates,a.dates)=30,b.user_id,null)) as device_v_remain30
	#自关联
	from(#group by user_id,dates,某用户在某天只返回一条数据即可
		select user_id,dates
		from temp_trade
		group by user_id,dates ) a
	left join(
		select user_id,dates
		from temp_trade
		group by user_id,dates) b 
	on a.user_id = b.user_id
	where b.dates >= a.dates
	group by a.dates
)
select dates,user_count,
	concat(cast((device_v_remain1/user_count)*100 as decimal(18,2)),'%') as 'day_1%',
	concat(cast((device_v_remain2/user_count)*100 as decimal(18,2)),'%') as 'day_2%',
	concat(cast((device_v_remain3/user_count)*100 as decimal(18,2)),'%') as 'day_3%',
	concat(cast((device_v_remain4/user_count)*100 as decimal(18,2)),'%') as 'day_4%',
	concat(cast((device_v_remain5/user_count)*100 as decimal(18,2)),'%') as 'day_5%',
	concat(cast((device_v_remain6/user_count)*100 as decimal(18,2)),'%') as 'day_6%',
	concat(cast((device_v_remain7/user_count)*100 as decimal(18,2)),'%') as 'day_7%',
	concat(cast((device_v_remain15/user_count)*100 as decimal(18,2)),'%') as 'day_15%',
	concat(cast((device_v_remain30/user_count)*100 as decimal(18,2)),'%') as 'day_30%'
from temp_table_trades;

结果展示
在这里插入图片描述

方法二:用创建视图的方式

create view user_remain_view as(
	select a.dates,
		count(distinct b.user_id) as user_count,
		count(distinct if(datediff(b.dates,a.dates)=1,b.user_id,null)) as device_v_remain1,#1日留存数
		count(distinct if(datediff(b.dates,a.dates)=2,b.user_id,null)) as device_v_remain2,#2日留存数
		count(distinct if(datediff(b.dates,a.dates)=3,b.user_id,null)) as device_v_remain3,
		count(distinct if(datediff(b.dates,a.dates)=4,b.user_id,null)) as device_v_remain4,
		count(distinct if(datediff(b.dates,a.dates)=5,b.user_id,null)) as device_v_remain5,
		count(distinct if(datediff(b.dates,a.dates)=6,b.user_id,null)) as device_v_remain6,
		count(distinct if(datediff(b.dates,a.dates)=7,b.user_id,null)) as device_v_remain7,
		count(distinct if(datediff(b.dates,a.dates)=15,b.user_id,null)) as device_v_remain15,
		count(distinct if(datediff(b.dates,a.dates)=30,b.user_id,null)) as device_v_remain30
	#自关联
	from(#group by user_id,dates,某用户在某天只返回一条数据即可
		select user_id,dates
		from temp_trade
		group by user_id,dates ) a
	left join(
		select user_id,dates
		from temp_trade
		group by user_id,dates) b 
	on a.user_id = b.user_id
	where b.dates >= a.dates
	group by a.dates
)
select dates,user_count,
	#1日留存率,cast转换函数,decimal函数长度为10,保留2位小数
	concat(cast((device_v_remain1/user_count)*100 as decimal(10,2)),'%') as 'day_1%',
	concat(cast((device_v_remain2/user_count)*100 as decimal(10,2)),'%') as 'day_2%',
	concat(cast((device_v_remain3/user_count)*100 as decimal(10,2)),'%') as 'day_3%',
	concat(cast((device_v_remain4/user_count)*100 as decimal(10,2)),'%') as 'day_4%',
	concat(cast((device_v_remain5/user_count)*100 as decimal(10,2)),'%') as 'day_5%',
	concat(cast((device_v_remain6/user_count)*100 as decimal(10,2)),'%') as 'day_6%',
	concat(cast((device_v_remain7/user_count)*100 as decimal(10,2)),'%') as 'day_7%',
	concat(cast((device_v_remain15/user_count)*100 as decimal(10,2)),'%') as 'day_15%',
	concat(cast((device_v_remain30/user_count)*100 as decimal(10,2)),'%') as 'day_30%'
from user_remain_view;

思考:pv计算中为什么要求behavior_type=1?

5.1.2 RFM模型分析

  • RFM模型:R部分
#1.建立R视图,将近期购买时间提取到R临时表中
drop view if exists user_recency_view;
create view user_recency_view as
select user_id, max(dates) as recent_buy_time
from temp_trade
where behavior_type = 2  #购买行为
group by user_id;

#2.计算每个用户最近购买时间距离2019-12-18相差几天,根据相差天数给予一定的分数
drop view if exists r_clevel;
create view r_clevel as
select user_id,recent_buy_time,datediff('2019-12-18',recent_buy_time) as recent_num,
(case when datediff('2019-12-18',recent_buy_time) <= 2 then 5
		when datediff('2019-12-18',recent_buy_time) <= 4 then 4
		when datediff('2019-12-18',recent_buy_time) <= 6 then 3
		when datediff('2019-12-18',recent_buy_time) <= 8 then 2
else 1 end) as 'r_value'
from user_recency_view;

#查看前5条
select * from r_clevel limit 5;

结果展示
在这里插入图片描述

  • RFM模型:F部分
#1.建⽴F视图
create view frenq_value  as
select user_id ,count(user_id) as buy_frenquency
from temp_trade
where behavior_type = 2
group by user_id;

#2.建⽴F等级划分
create view f_clevel as
select user_id,buy_frenquency,
(case when buy_frenquency <=2 then 1
	when buy_frenquency <= 4 then 2
	when buy_frenquency <= 6 then 3
	when buy_frenquency <= 8 then 4
else 5 end) as 'f_values'
from frenq_value;

#查看视图结果的前五条
select * from f_clevel limit 5;

在这里插入图片描述

  • RFM模型:整合结果
    本次数据中通过最近消费(R)和消费频率(F)建立RFM模型,按照最近⼀次消费的均值和消费频率的均值定高低界限。
    R:最近购物的时间间隔
    F:一定时间段内的购物频率
    M:一定时间段内的购物消费金额
用户分类的说明
重要高价值客户:指最近⼀次消费较近且消费频率较⾼的客户;
重要唤回客户:指最近⼀次消费较远且消费频率较⾼的客户;
重要深耕客户:指最近⼀次消费较近且消费频率较低的客户;
重要挽留客户:指最近⼀次消费较远且消费频率较低的客户;
#1.R平均值
select avg(r_value) as 'r_avg' from r_clevel; -- 2.7939

#2.F平均值
select avg(f_values) as 'f_avg' from f_clevel; -- 2.2606

#3.查看R平均值和F平均值
select r.r_avg,f.f_avg
from (select avg(r_value) as 'r_avg' from r_clevel) r,
	(select avg(f_values) as 'f_avg' from f_clevel) f;

结果展示

r_avg f_avg
2.7936 2.2606
#4.⽤户⼋⼤类等级划分,由于该数据没有M值,故只建⽴了4个分类
drop view if exists RFM_inall;
create view RFM_inall as
select r.user_id , r.r_value, f.f_values,
	(case when r.r_value > 2.7939 and f.f_values > 2.2606 then '重要⾼价值客户'
		when r.r_value < 2.7939 and f.f_values > 2.2606 then '重要唤回客户'
		when r.r_value > 2.7939 and f.f_values < 2.2606 then '重要深耕客户'
		when r.r_value < 2.7939 and f.f_values < 2.2606 then '重要挽留客户'
	end) as 'user_class'
from r_clevel r, f_clevel f
where r.user_id = f.user_id;

select count(user_id) as user_v,user_class 
from RFM_inall 
group by user_class;

结果展示

user_v (用户数) user_class 平均值项:r_value 平均值项:f_values
66 重要挽留客户 1.545454545 3.818181818
44 重要深耕客户 4 1.363636364
44 重要高价值客户 1.121212121 1.212121212
11 重要唤回客户 4.409090909 4.340909091

5.2 商品指标体系

商品的点击量 收藏量 加购量 购买次数 购买转化(该商品的所有用户中有购买转化的用户比;)
按照商品进行分组统计

- 商品的点击量 收藏量 加购量 购买次数 购买转化
select * from temp_trade;
select item_id,
	sum(case when behavior_type=1 then 1 else 0 end) as'pv',
	sum(case when behavior_type=4 then 1 else 0 end) as'fav',
	sum(case when behavior_type=3 then 1 else 0 end) as'cart',
	sum(case when behavior_type=2 then 1 else 0 end) as'buy',
	count(distinct case when behavior_type=2 then user_id else null end)/count(distinct user_id) as 'buy_rate'
from temp_trade
group by item_id
order by buy desc;

对应品类的点击量 收藏量 加购量 购买次数 购买转化(该商品品类的所有用户中有购买转化的用户
比;)

select item_category,
	sum(case when behavior_type=1 then 1 else 0 end) as'pv',
	sum(case when behavior_type=4 then 1 else 0 end) as'fav',
	sum(case when behavior_type=3 then 1 else 0 end) as'cart',
	sum(case when behavior_type=2 then 1 else 0 end) as'buy',
	count(distinct case when behavior_type=2 then user_id else null end)/count(distinct user_id) as 'buy_rate'
from temp_trade
group by item_category
order by buy desc;

5.3 平台价值指标体系

1.⾏为指标:
点击次数 收藏次数 加购物⻋次数 购买次数 购买转化(该平台当日的所有⽤户中有购买转化的用户比)

-- 每⽇的分析(1-4,分别表示点击pv、购买buy、加购物⻋cart、喜欢fav)
select dates,count(1) as '每⽇的总数',
	sum(case when behavior_type=1 then 1 else 0 end) as'pv',
	sum(case when behavior_type=4 then 1 else 0 end) as'fav',
	sum(case when behavior_type=3 then 1 else 0 end) as'cart',
	sum(case when behavior_type=2 then 1 else 0 end) as'buy',
	count(distinct case when behavior_type=2 then user_id else null end)/count(distinct user_id) as buy_rate
from temp_trade
group by dates;

2、行为路径分析

#⾏为路径组建基础视图
create view path_base_view as 
select a.*
from(select user_id,item_id,
	lag ( behavior_type, 4 ) over ( partition by user_id, item_id order by date_time ) lag_4,
	lag ( behavior_type, 3 ) over ( partition by user_id, item_id order by date_time ) lag_3,
	lag ( behavior_type, 2 ) over ( partition by user_id, item_id order by date_time ) lag_2,
	lag ( behavior_type, 1 ) over ( partition by user_id, item_id order by date_time ) lag_1,
	behavior_type,
	rank() over(partition by user_id, item_id order by date_time desc) as rank_number
	from temp_trade
)a where a.rank_number = 1 and a.behavior_type = 2;

#拼接行为路径
select concat(ifnull(lag_4,'空'),'-',
	ifnull(lag_3,'空'),'-',
	ifnull(lag_2,'空'),'-',
	ifnull(lag_1,'空'),'-',
	behavior_type)
from path_base_view;

#针对行为路径进行分组count统计
select concat(ifnull(lag_4,'空'),'-',
	ifnull(lag_3,'空'),'-',
	ifnull(lag_2,'空'),'-',
	ifnull(lag_1,'空'),'-',
	behavior_type) as user_way,
	count(distinct user_id) as user_count 
from path_base_view
group by concat(ifnull(lag_4,'空'),'-',
	ifnull(lag_3,'空'),'-',
	ifnull(lag_2,'空'),'-',
	ifnull(lag_1,'空'),'-',
	behavior_type);

6.结论

6.1 用户分析

UV异常分析:每日UV数据中,明显异常点为双十二活动造成,该影响为已知影响。
在这里插入图片描述
在这里插入图片描述
对于UV周环比的分析:日常周环比数据大多大于0,说明⽤户程⼀定上升趋势,其中如11月26日、12月2日、12月7日等的数据为下降数据,需要结合其他数据做进⼀步的下降原因分析。双十二活动后⽤户周环比会相应下降,为正常原因。

猜测可能的问题有:
内部问题:产品BUG(网站bug)、策略问题(周年庆活动结束了)、营销问题(代言人换了)等;
外部问题:竞品活动问题(其他平台大酬宾),政治环境问题(进口商品限制),舆情口碑问题(平台商品爆出质量问题)等

6.2 用户精细化运营X

通过RFM模型中的⽤户最近⼀次购买时间、⽤户消费频次分析,分拆得到以下重要⽤户。
在这里插入图片描述
在这里插入图片描述
可以在后续精细化运营场景中直接使⽤细分用户,做差异化运营:
对高价值客户做VIP服务设计,增加⽤户粘性同时通过设计优惠券提升客户消费;
对深耕客户做⼴告、推送刺激,提升消费频次;
对挽留客户做优惠券、签到送礼策略,增加挽留用户粘性;
对唤回客户做定向⼴告、短信召回策略,尝试召回用户。

6.3 商品分析

热销商品品类如下所示。
   其中“5027”、“5399”品类购买转化率较其余商品品类偏低,需要结合更多数据做进⼀步解读。(可能的原因:品类自有特性导致用户购买较低,比如非必需、奢侈品等等。)
在这里插入图片描述

6.4 产品功能路径分析

以下为主要购买路径。可以发现用户多以直接购买为主;添加购物车的购买在主要购买路径中数量较少。后续的产品加购功能和产品收藏功能还需要结合更多数据做改进方案。

use_way user_count
空-1-1-1-2 1
空-空-1-1-2 10
空-空-1-3-2 1
空-空-2-1-2 2
空-空-空-1-2 64
空-空-空-2-2 1
空-空-空-3-2 2
空-空-空-空-2 146

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL-DAY 9(SQL应用案例:电商用户、商品、平台价值分析) 的相关文章

  • 需要在 SQL Server 中透视字符串值

    我有一个包含值的表 描述为 Occupation String Name String Developer A Developer B Designer X Coder Y Coder Z 我需要数据透视格式的值 Designer Deve
  • 如何使用 Wix 运行 sql 脚本创建数据库

    我在使用 Wix 创建数据库时遇到问题 我能找到的示例 参见下面的链接 都是首先使用 wix 创建数据库并运行创建表 sql 脚本 问题是我需要将 wix 设置为使用 CREATE DATABASE 运行 sql 脚本来创建数据库和表 而不
  • 如何使用 MySQL 选择有特定值的 2 个连续行?

    我正在构建一个系统 该系统应该显示学生何时连续缺席两天 例如 此表包含缺勤情况 day id missed 2016 10 6 1 true 2016 10 6 2 true 2016 10 6 3 false 2016 10 7 1 tr
  • 在 plpgsql 函数中使用 quote_ident()

    我是创建 plpgsql 函数的新手 我需要一些有关在函数内部执行的动态命令上使用 quote ident 甚至 quote literal 的说明 希望有人能给我一个关于它们如何在函数内部工作的具体解释 TIA 这是一个例子 EXECUT
  • MYSQL:如何在同一查询中联接两个表,两次引用同一个表

    我有两张桌子 我正在尝试将下面的示例两个表与表 1 引用表 2 两次结合起来 例如 如果我查看表 1 组 2 和成员 7 它应该查找表 2 中的 ID 并给出输出 Group Members Name Name 2 7 Blue Dog T
  • hive - 在值范围之间将一行拆分为多行

    我在下面有一张表 想按从开始列到结束列的范围拆分行 即 id 和 value 应该对开始和结束之间的每个值重复 包括两者 id value start end 1 5 1 4 2 8 5 9 所需输出 id value current
  • 研究MySQL、SQLite源码了解RDBMS实现[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道实现数据库是一个很大的话题 但我想通过研究数据库系统的源代码来基本了解数据库系统的工作原理 例如
  • 重用 t-sql 游标的起始位置?

    我正在开发一个在临时表上使用游标的存储过程 我已经阅读了一些关于为什么不需要游标的内容 但在这种情况下我相信我仍然需要使用游标 在我的过程中 我需要遍历表的行两次 声明游标后 已经单步执行临时表并关闭游标 重新打开时游标的位置是否仍保留在表
  • 迭代 pandas 数据框的最快方法?

    如何运行数据框并仅返回满足特定条件的行 必须在之前的行和列上测试此条件 例如 1 2 3 4 1 1 1999 4 2 4 5 1 2 1999 5 2 3 3 1 3 1999 5 2 3 8 1 4 1999 6 4 2 6 1 5 1
  • 如何在 MySQL 中构建跨数据库查询?

    我在同一台服务器上有两个数据库 谷歌给了我一些提示 但我找不到任何 官方 的东西 有人可以向我指出解释如何执行此操作的文档吗 使用 PHP 进行解释也很有用 谢谢 我在同一台服务器上有两个数据库 如何在 MySQL 中构建跨数据库查询 您可
  • 如何在Word 2010中从SQL数据库检索数据?

    我想用 MS SQL 数据库中的数据填充 Word 文档 这可能吗 如果可能的话 如何实现 我过去曾通过多种方式做到这一点 这取决于用户是从 Microsoft Word 外部还是从 Microsoft Word 内部启动操作 From I
  • Android中BaseColumns有什么用

    实现一个类有什么用BaseColumns在安卓中 The BaseColumns http developer android com reference android provider BaseColumns html接口提供了非常常见
  • 将用户定义的表类型从 VBA 传递到 SQL

    我的任务是创建一个 Excel 电子表格作为 SQL 数据库的前端 以及一些对数据执行复杂计算的 C 我的老板想要前端作为电子表格 而计算对于 VBA 来说似乎太复杂了 目前 检索数据集的存储过程运行良好 然后 用户将在 Excel 中编辑
  • 仅选择 Varchar 列中的数字[重复]

    这个问题在这里已经有答案了 在 SQL Server 2008 R2 中 我在 varchar 12 列中有一些数据 它看起来像这样 Data 1234 1765 34566 123 SDRMH HJG434 我想从所有包含 的行中删除 并
  • 触发器与非规范化存储过程的优缺点

    当涉及到对事务数据库中的数据进行非规范化以提高性能时 至少 有三种不同的方法 通过存储过程推送更新 更新规范化交易数据和非规范化报告 分析数据 在事务表上实现更新辅助表的触发器 这几乎总是维护历史时所采取的路线 将处理推迟到夜间批处理 可能
  • 使用来自另一个的 SELECT 更新表,但字段为 SUM(someField)

    基本上我有这样的事情 UPDATE Table SET Table col1 other table col1 FROM Table INNER JOIN other table ON Table id other table id 问题是
  • PostgreSQL 和锁定

    希望一些比我更聪明的 DBA 可以帮助我找到一个好的解决方案来完成我需要做的事情 为了便于讨论 我们假设我有一个名为 work 的表 其中包含一些列 其中一列表示给定客户端对该行工作的所有权 场景是 我将连接 2 个客户端并轮询表以查找要完
  • 查询嵌套查询结果中两列的位置

    我正在编写这样的查询 select from myTable where X in select X from Y and XX in select X from Y X 列和 XX 列的值必须位于同一查询的结果中 select X fro
  • MySQL 正在将我的时间戳值转换为 0000-00-00

    我是 PHP 新手 目前仍在学习中 我认为我的注册表有问题 username password email全部成功插入MySQL registered and last seen不要 我以为我正在使用getTimestamp 错了 但它呼应
  • Entity Framework 6 多对多想要插入重复行

    不应该这么难 我准备放弃EF了 我的模型有周刊版本 每个版本可以有许多分类广告 每个分类可以出现在一个或多个版本中 我的模型 public class Classifieds Key DatabaseGenerated DatabaseGe

随机推荐

  • 时序预测

    时序预测 MATLAB实现SSA GRU 麻雀算法优化门控循环单元 时间序列预测 目录 时序预测 MATLAB实现SSA GRU 麻雀算法优化门控循环单元 时间序列预测 预测效果 基本介绍 模型介绍 程序设计 参考资料 预测效果 基本介绍
  • WCF:The maximum string content length quota (8192) has been exceeded while reading XML data

    修改接收端的WCF config文件 注意 如果server端接收request超长 则修改server端config 如果是client 接收response超长 则修改client端 建议两边都修改 保持一致
  • Linux下使用smbclient传输文件夹(包括文件)脚本

    遍历文件夹 是文件就put上去 不是文件就创建目录 根据自己的需求改一下前面的directory serverpath des directory就可以用了 在代码中smbclient中使用了 N 因为我用的是匿名登录 加了 N就不需要提示
  • nodejs,zip压缩版安装与配置

    下载zip包 下载 Node js 解压 将文件解压到要安装的位置 并新建两个目录node global npm全局安装位置node cache npm 缓存路径 配置环境变量 NODE PATH D Program Files node
  • GridView和CheckBox结合[转]

    效果图 后台代码 Code 1using System 2using System Data 3using System Configuration 4using System Web 5using System Web Security
  • 算法:反转链表 java

    方法1 迭代 public static Node reverseNode Node head 前一个节点 Node pre null 当前节点 Node cur head 如果当前节点不为空 while cur null 存储下一个节点
  • 《数学建模实战攻略:引言》

    一 专栏简介与目标 欢迎来到 数学建模实战攻略 专栏 本专栏旨在帮助初学者 参加数学建模竞赛的学生以及对数学建模感兴趣的研究者和开发者全面了解数学建模的知识体系 掌握建模方法和技巧 提高解决实际问题的能力 本专栏将涵盖数学建模的基本概念 方
  • ALSA信息查看

    1 1 1 查看当前Soc的声卡状态 cat proc asound cards 例如 插入USB声卡之后 会新增声卡节点 USB声卡无声可优先查看该状态 1 1 2 查看当前声卡工作状态 声卡分两种通道 一种是Capture 一种是Pla
  • web的欢迎资源文件

    欢迎资源文件 1 前提 用户可以记住网站名 但是不会记住网站资源文件名 2 默认欢迎资源文件 用户发送了一个针对某个网站的 默认请求 时 此时由Http服务器自动从当前网站返回的资源文件 正常请求 http localhost 8080 m
  • 关于Electron 串口通讯serialport 打包的问题

    请教各位大佬一下 我使用serialport模块 程序编译后正常运行 但是无法打包 目前搞不清楚原因 特来请教 PS C Users appyjj Desktop cart gt npm run build gt cart 1 0 0 bu
  • 学会项目成本管理计算,PMP计算题就是送分题

    学会项目成本管理计算 PMP计算题就是送分题 PMP中的计算主要在 lt 项目成本管理 gt 的控制成本部分 服务于挣值管理 EVM Earned Value Management 挣值分析 EVA Earned Value Analysi
  • MySQL学习日记day04(索引、视图、DBA常用命令、数据库设计三范式)

    目录 一 索引 index 1 什么是索引 2 索引的实现原理 3 在mysql当中 主键上 以及unique字段上都会自动添加索引的 4 索引怎么创建 怎么删除 语法是什么 5 在mysql当中 怎么查看一个SQL语句是否使用了索引进行检
  • Node.js 下载安装环境配置 - 图文版

    Node js 是一个开源 跨平台的 JavaScript 运行时环境 一 介绍 1 官方文档 1 中文文档 Node js 中文网 2 英文文档 Node js 二 下载 1 中文 2 英文 编辑三 安装 1 新建一个文件夹作为安装路径
  • Win11家庭版怎么开启远程桌面

    Win11家庭是专为家庭用户准备的版本 由于Win11系统是一款全新的系统 很多用户对一些功能还不是很熟悉 那么Win11家庭版怎么开启远程桌面 下面就来看看详细教程 Win11家庭版开启远程桌面教程 1 首先 我们需要先下载安装一款远程桌
  • 黑马程序员--多线程

    黑马程序员 多线程 Java培训 Android培训 iOS培训 Net培训 期待与您交流 一 定义 进程 是一个正在执行中的程序 每一个进程执行都有一个执行顺序 该顺序是一个执行路径或叫控制单元 线程 进程中的一个独立的控制单元 线程在控
  • Ubuntu32位安装VSCODE

    Ubuntu32位安装VSCODE vscode自1 36版本后停止支持32位linux系统 所以要使用 lt 1 36版本 vscode所有版本下载地址 https code visualstudio com updates v1 33
  • ubuntu12.04搭建CUDA4.2开发环境

    实验室老师让调试一个DeepLearning的程序 叫做DropConnecte 必须要在64bit的Linux系统上运行 还要配置CUDA 本人比较笨 重装了好多次Ubuntu之后才整成功 特把整理的资料发到这里 1 动态链接库解决方案h
  • Ubuntu和vmware前期设置教程

    系统删除不要从左侧一栏删除 从菜单栏虚拟机 管理 从磁盘删除 ubuntu版本下载地址 清华镜像源 https mirrors tuna tsinghua edu cn ubuntu releases vmware tools 安装教程 h
  • YOLOv5-Lite 使用笔记

    目录 开源一些有用信息 推理部分代码提取出来 不依赖第三方库 c opencv onnx 推理
  • SQL-DAY 9(SQL应用案例:电商用户、商品、平台价值分析)

    文章目录 1 项目背景 2 使用 人货场 拆解方式建立指标体系 3 确认问题 4 准备工作 4 1 数据读取 用户行为数据 4 2 数据预处理 5 指标体系建设 5 1 用户指标体系 5 1 1 基础指标 5 1 2 RFM模型分析 5 2