summary_daily


/*call summary_daily('2015-01-08','2015-01-14');

call summary_daily('','2015-01-14');

CALL summary_daily();
call summary_daily('', '');
call summary_daily('','2015-01-14');*/

DROP PROCEDURE IF EXISTS summary_daily;

DELIMITER //
CREATE PROCEDURE summary_daily(
minDate varchar(20), /* 格式 2015-01-05 */
maxDate varchar(20) /* 格式 2015-01-05 */
)
BEGIN
/*DECLARE minDate varchar(20) ;
DECLARE maxDate varchar(20) ;*/
DECLARE stkDate varchar(20) ;

SET @FLAG = (SELECT date FROM yt_daily_sumary LIMIT 1,1) ;

IF minDate = '' OR minDate IS NULL THEN
IF maxDate = '' OR maxDate IS NULL THEN
SELECT MAX(time) INTO maxDate FROM yt_log_role_login_in;
TRUNCATE TABLE yt.yt_daily_sumary;
ELSE
IF @FLAG IS NOT NULL OR @FLAG != '' THEN
SELECT MAX(date) INTO minDate FROM yt_daily_sumary;
ELSE
SELECT MIN(time) INTO minDate FROM yt_log_role_login_in;
END IF;
END IF;
ELSE
IF maxDate = '' OR maxDate IS NULL THEN
SELECT MAX(time) INTO maxDate FROM yt_log_role_login_in;
END IF;
END IF;

/*SET stkDate = (SELECT DATE_FORMAT(A,'%Y-%m-%d') FROM (SELECT MIN(time) AS A from yt_log_role_login_in) AS T);*/
SET stkDate = (SELECT DATE_FORMAT(minDate,'%Y-%m-%d'));

SET @diff = DATEDIFF(stkDate,maxDate);

WHILE @diff<=0 DO
/* 按服务器统计没小时的登录用户数*/
SET @chour = 0;
WHILE @chour<24 DO
IF @chour<10 THEN
SET @startTime = CONCAT(stkDate,' 0',CAST(@chour AS CHAR));
ELSE
SET @startTime = CONCAT(stkDate,' ',CAST(@chour AS CHAR));
END IF;

SET @nextHour=@chour+1;
IF @nextHour<10 THEN
SET @endTime = CONCAT(stkDate ,' 0',CAST(@nextHour AS CHAR));
ELSE
SET @endTime = CONCAT(stkDate,' ',CAST(@nextHour AS CHAR));
END IF;

SET @tmpDate = stkDate;
/*INSERT INTO yt_daily_sumary(server,date,key,value) value (SELECT server,@tmpDate,@chour,COUNT(id) FROM yt_log_role_login_in WHERE time>@startTime AND time>@endTime GROUP BY server);
*/
REPLACE INTO yt.yt_daily_sumary (SELECT server,stkDate,@chour,COUNT(id) FROM yt_log_role_login_in WHERE time>@startTime AND time<=@endTime GROUP BY server);
SET @chour = @chour+1;
END WHILE;

/* 按服务器统计每天的注册用户数 key */
SET @likeTime = CONCAT(stkDate,'%');
REPLACE INTO yt.yt_daily_sumary SELECT server,stkDate,25,COUNT(id) FROM yt_log_role_create WHERE time like @likeTime GROUP BY server;

/* 按服务器统计每天的 登录用户数 key */
SET @likeTime = CONCAT(stkDate,'%');
REPLACE INTO yt.yt_daily_sumary SELECT server,stkDate,24,COUNT(id) FROM yt_log_role_login_in WHERE time like @likeTime GROUP BY server;

/* 按服务器统计每天的滚服用户数 key 性能的消耗在此 需要优化 */
SET @likeTime = CONCAT(stkDate,'%');

create temporary table tmp_table(acount varchar(10) not null,server varchar(20) not null);
/* 滚服的 情况一 1*/
REPLACE INTO tmp_table SELECT distinct b.acount,b.server FROM yt_log_role_login_in a inner join yt_log_role_create as b on a.acount=b.acount and b.server != a.server where b.time like @likeTime ;
/* 滚服的 情况二 2*/
REPLACE INTO tmp_table select acount, server from ( SELECT count(distinct a.server) as st, b.acount as acount ,b.server as server
FROM yt_log_role_login_in a inner join yt_log_role_create as b on a.acount=b.acount and b.server=a.server where b.time like @likeTime group by b.acount ) as l where l.st>1 ;

REPLACE INTO yt.yt_daily_sumary SELECT server,stkDate,26,COUNT(DISTINCT acount) FROM tmp_table group by server;

drop temporary table tmp_table;
SET @diff = DATEDIFF(stkDate,maxDate);
SET stkDate = (SELECT ADDDATE(stkDate,1));
/*SELECT stkDate, minDate,maxDate,@diff;*/
END WHILE;

END; //
DELIMITER;

/*CALL summary_daily(); */

CAPM模型(Capital Asset Pricing Model),又称为资本资产定价模型,是用来衡量资产预期收益与系统风险间的关系的一种金融理论工具。在R语言中,我们可以使用`quantmod`库来获取历史数据,并通过` PerformanceAnalytics`包来进行分析。 下面是一个简单的CAPM模型计算的R代码示例: ```R # 首先安装并加载必要的包 install.packages(c("quantmod", "PerformanceAnalytics")) library(quantmod) library(PerformanceAnalytics) # 定义股票和指数的数据源及日期范围 getSymbols("AAPL", src = "yahoo") # 示例:苹果公司的股票 getSymbols("^GSPC", src = "yahoo") # 示例:标普500指数 # 获取每日收益率数据 daily_returns <- apply(log(Ad(getSymbols("AAPL"))), 2, diff) / log(Ad(getSymbols("AAPL"))[-1]) sp_index_daily_returns <- apply(log(Ad(getSymbols("^GSPC"))) , 2, diff) / log(Ad(getSymbols("^GSPC"))[- colMeans(sp_index_daily_returns) # CAPM公式计算阿尔法(α)和贝塔(β) alpha_AAPL <- mean(daily_returns) - market_return beta_AAPL <- cov(sp_index_daily_returns, daily_returns) / var(sp_index_daily_returns) cat("Apple的阿尔法(alpha): ", alpha_AAPL, "\n") cat("Apple的贝塔(beta): ", beta_AAPL, "\n") # 相关统计检验 results <- summary(lm(daily_returns ~ sp_index_daily_returns)) cat("CAPM回归结果:\n", results$coefficients[2], " (Beta)", results$r.squared, "\n") ``` 这个代码首先获取了苹果公司股票(AAPL)和标普500指数的日收益率,然后计算出它们各自的阿尔法(超额回报率)和贝塔(对市场波动性的敏感度)。最后,它会进行一个线性回归以验证CAPM模型的有效性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值