楼主: dandan_9075
8068 32

请问sql包含语句怎么写 [推广有奖]

31
颜非如玉 发表于 2012-11-26 22:59:20
ziyenano 发表于 2012-11-26 17:39
PROC SQL;
CREATE TABLE TEMP34 AS /* TEMP34为剪除部分四项规则后的规则集*/
SELECT  distinct  b.*
我的数据也是在做关联分析,数据类型都是类似的。目前想用来筛选规则。rule_3是项集为3筛选出的数据集,rule_4是项集为4筛选出的数据集,想做rule_4的规则前件包含rule_3的数据前件的,同时,rule_4的置信度大于rule_3的1.05倍的。结果,用了大神的程序,还是没有结果呢,并且显示的也和以前一样“NOTE: 执行该查询涉及到执行无法优化的一个或多个 Cartesian 产品连接”。不知道是为什么呢。坐等大神回复,万望给力啊~~小女子在此谢过。。。

32
ziyenano 发表于 2012-11-27 09:38:30
颜非如玉 发表于 2012-11-26 22:59
我的数据也是在做关联分析,数据类型都是类似的。目前想用来筛选规则。rule_3是项集为3筛选出的数据集,r ...
PROC SQL;
CREATE TABLE TEMP34 AS
SELECT  distinct  b.*
FROM RULE_3 a,RULE_4 b
WHERE  b._LHAND ? trim(a.LH) AND b.CONF>a.CONF*(0.05+1);
quit;
用trim函数将结尾的空格去掉就好了,compress会将所有空格去掉,包括字段中的空格,
由于楼主的rule_3表中的LH字段中间没有空格,compress和trim算是等价;
或者将连接条件写成 compress(b._LHAND) ? compress(a.LH),前后同时去掉所有空格也可以。
连接通过包含关系连接,只能通过笛卡尔连接,无法优化

33
颜非如玉 发表于 2012-11-27 13:16:11
ziyenano 发表于 2012-11-27 09:38
PROC SQL;
CREATE TABLE TEMP34 AS
SELECT  distinct  b.*
哈哈,多谢大神~~果然给力~~

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-20 02:23