我有一个用于配置的表格-tblConfig,如下所示
# Return 2nd coeffficient of weighted regression
coeff <- lapply(lst, function(df)
coefficients(lm(Y1 ~ X1, data = df , weights = weights))[2])
另一个表tblData的行数超过1万。
我想编写一个查询以返回tblData表行以及tblConfig表的列。
例如:
-------------------------------------------
| SiteCode | CompanyCode | CompanyGroup |
-------------------------------------------
| AISH78 | SPWI85 |SFTIT |
-------------------------------------------
我知道我可以编写交叉联接查询
---------------------------------------------------------------------------
| SiteCode | CompanyCode | CompanyGroup | tblDataCol1 | tblDataCol2|.....etc
---------------------------------------------------------------------------
| AISH78 | SPWI85 |SFTIT | 1 | XY | ....etc
----------------------------------------------------------------------------
| AISH78 | SPWI85 |SFTIT | 2 | MN | ....etc
----------------------------------------------------------------------------
| AISH78 | SPWI85 |SFTIT | 3 | PQ | ....etc
----------------------------------------------------------------------------
...
...
...
..etc
但是,由于tblData的行数超过1万,因此Query会影响性能。 (在此交叉连接之后,我还有其他查询)。
在上述情况下,交叉联接是否有其他选择? 请帮忙。
答案 0 :(得分:0)
嗯...您不需要使用交叉联接。您也可以使用常规内部联接。但是,可能是优化器毕竟将其更改为交叉联接-您必须尝试性能是否符合您的要求:
DECLARE @t1 TABLE(
SiteCode NVARCHAR(10),
CompanyCode NVARCHAR(10),
CompanyGroup NVARCHAR(10)
)
INSERT INTO @t1 VALUES ('AISH78','SPWI85', 'SFTIT')
DECLARE @t2 TABLE(
c1 NVARCHAR(10),
c2 NVARCHAR(10),
c3 NVARCHAR(10)
)
INSERT INTO @t2 VALUES ('AAA','BBB', 'CCC'), ('DDD','EEE', 'FFF'), ('GGG','HHH', 'III')
SELECT t1.*, t2.*
FROM @t2 t2
JOIN @t1 t1 ON t1.SiteCode = t1.SiteCode