t****n 发帖数: 10724 | 1 *******************************************************************
HR SQL难题的三种解法
*******************************************************************
摘要
本文综合描术了针对养老院人事难题的多种SQL解法。
鸣谢
Beijing
===========================================================
解法1 -- Partition 法
===========================================================
可以参考wyr解法,本解法用了lead/lag,以及ROWS UNBOUNDED PRECEDING A... 阅读全帖 |
|
s*w 发帖数: 729 | 2 codeeval.com 上的一个题
给n个东西,每个东西有重量和价值,要求在重量小于给定值的时候,尽量价值大
在重量是浮点数的情况下,怎么做 bottomup 的 dp table?
我现在的解是 recursion, 而且没 memorization, 因为不知道怎么存这个 table.
帖下代码,请指教一下
#include
#include
#include
#include
#include
#include
using namespace std;
class Solution {
int weightLimit;
int n;
vector weights;
vector costs;
public:
Solution(const string &line) {
istringstream iss(line);
iss >> weightLimit;
int in... 阅读全帖 |
|
g******9 发帖数: 70 | 3 ind1 = 1
ind2 = 1
while ind1 < length(A) and ind2 < length(B)
if (A==B)
blahblah
ind1++
ind2++
else if (A < B)
ind1++
else
ind2++
end
end |
|
B*****g 发帖数: 34098 | 4 原理一样,就是要达到排序后分组的目的
借用原题数据,第一步的目标加上ind1,指示此行是否是超过30天的行
User StartDate EndDate ind1
1 12/2/2011 1/16/2012 0
1 3/4/2012 3/24/2012 1
1 4/5/2012 4/26/2012 0
1 5/14/2012 6/7/2012 0
2 3/5/2012 7/30/2012 0
2 8/4/2012 9/15/2012 0
3 6/5/2012 8/20/2012 0
假设结果是t1,t1是这样得到的,请自行优化
select t11.*,
t11.startdate - (select MAX(t12.enddate) from t t21 where .. < ..) ind11
from t t11
ind11是相差的天数,自行转化成ind1 0(<=30),1(>30)
借用原题数据,第二步的目标加上ind2,指示分组
User StartDate EndDate ind1 ind2
1 12/2/2011 1/16/2012 0 0
1 3/4/2012 3/2... 阅读全帖 |
|
B*****g 发帖数: 34098 | 5 可以参考wyr解法,本解法用了lead/lag,以及ROWS UNBOUNDED PRECEDING AND
CURRENT ROW
原理一样,就是要达到排序后分组的目的
借用原题数据,第一步的目标加上ind1,指示此行是否是超过30天的行
User StartDate EndDate ind1
1 12/2/2011 1/16/2012 0
1 3/4/2012 3/24/2012 1
1 4/5/2012 4/26/2012 0
1 5/14/2012 6/7/2012 0
2 3/5/2012 7/30/2012 0
2 8/4/2012 9/15/2012 0
3 6/5/2012 8/20/2012 0
假设结果是t1,t1是这样得到的,请自行优化
select t11.*,
(t11.startdate - (LEAD/LAG)? (end_date,1) over (PARTITION BY ?? ORDER BY ??
)) t11.ind11
from t t11
ind11是相差的天数,自行转化成ind1 0(<=30),1(>30)
借用原题数据,第二步的目标加上... 阅读全帖 |
|
d*******2 发帖数: 340 | 6 矩阵大小为N*N,ind1是纵坐标,ind2是横坐标,对于ind1+ind2=N或者ind1=ind2上的元
素不变,其余元素变零,请问该怎么写?先谢了! |
|
i***r 发帖数: 1035 | 7 有2列随机数字(不重复),很大比如2个G,排序之后,我想找出所有共同的数字,比
如A开头可能是:
1
2
3
7
10
74
100
349
。。。
B是:
2
3
6
78
89
90
120
。。。
他们相同的部分是
2
3
所以我需要2边同时往下读,然后不停地track谁大。实际上我的data里面,B总是比A增
加的快,所以我写了2个for loop,对每一个A,看B里面有没有相同的,找到了就记下
位置,作为下次loop的起点。
我不是科班出身,觉得自己的算法很烂(目前发现work不错,没有问题),相信有优化
算法,故请教大家
谢谢!
附上我的code结构,注意不要笑岔气了:
ind3=1;
for ind1=1:length(A)
for ind2=ind3:length(B)
if (A==B)
blahblah
end
ind3=ind2;
end
end |
|
a***r 发帖数: 420 | 8 比如有一个dataset
group($) id($)
1 IND1
1 IND2
2 IND3
2 IND4
3 IND5
3 IND6
想把它变成:
group($) id_1($) id_2($)
1 IND1 IND2
2 IND3 IND4
3 IND5 IND6
应该怎么做?
sorry这个问题版上肯定有人问过,但是时间比较紧来不及考古了
非常感谢!! |
|
p*****u 发帖数: 1007 | 9 原来FBA都是让我寄到IND2,BNA3,CAE1,CHA1这几个仓库的,基本上deliver之后一两
天inventory就会出现.
现在不知道怎么了老让我寄到ONT8,位于加州的仓库,但是这个好慢啊,FBA shipment
close之后将近十天才能在inventory出来,有什么窍门么?多谢了! |
|
|
s**u 发帖数: 383 | 11 经高手指导,compile 没有问题了, 但是initial 又出问题了, 说是NIL
dereference (read), 查了manual, 说是 'NIL dereference (read)' can occur at
compilation in some circumstances when an inappropriate transformation is
made, for example an array into a scalar.用gen initial也出现同样的error.
请高人指导,谢谢。
model {
for (i in 1:k-1) {
for (j in i+1:k){
win1[i,j] ~ dbin(p[i,j], n)
logit(p[i,j]) <- d[i]-d[j]}
# p[i] <- phi(d[ind1[i]] - d[ind2[i]])
}
d[1:k] ~dmnorm(dmu[ ]... 阅读全帖 |
|
h********o 发帖数: 103 | 12 Try this:
============================
DATA TEST;
INPUT GROUP $ ID $;
CARDS;
1 IND1
1 IND2
2 IND3
2 IND4
3 IND5
3 IND6
;
PROC SORT DATA = ONE;
BY GROUP;
RUN;
DATA ONE(RENAME = (ID = ID1))
TWO(RENAME = (ID = ID2)) ;
SET TEST;
BY GROUP;
IF FIRST.GROUP THEN OUTPUT ONE;
IF LAST.GROUP THEN OUTPUT TWO;
RUN;
DATA FINAL;
MERGE ONE TWO;
BY GROUP;
RUN; |
|
k*******a 发帖数: 772 | 13 下面这个例子可能和你比较类似 (来源:http://www.ats.ucla.edu/stat/sas/seminars/sas_macros_introduction/)
%macro mylogit1(all_deps);
%let k=1;
%let dep = %scan(&all_deps, &k);
%do %while("&dep" NE "");
title "dependent variable is &dep";
proc logistic data=xxx des;
model &dep = ind1 ind2;
run;
%let k = %eval(&k + 1);
%let dep = %scan(&all_deps, &k);
%end;
%mend;
*run the program for the first three v's;
%mylogit1(v1 v2 v3) |
|
l****u 发帖数: 529 | 14 proc sql;
create table two as
select *, min(score)^=max(score) as ind1, min(band)^=max(band) as ind2
from yourdata
group by id;
quit; |
|