我有一个SQL Server查询,如下所示:
SELECT
(SELECT VAL
FROM TABLE
WHERE IDENTIFIER = E.id)
FROM
(VALUES ('V1'), ('V2'), ('V3')) E(id)
出于性能原因,我使用表值构造函数语法(SELECT FROM VALUES)
,因为我需要批量运行数百个查询以进行数据验证。
但是,此查询的结果不能保证与我传入的值的顺序相同。
大部分时间都是相同的顺序,但并非总是如此。如何保证此查询的结果与我传入的值的顺序相同?
答案 0 :(得分:2)
您可以为值添加ORDER BY
虚拟列,并为Select Val
From Table T
Join (Values ('V1', 1),
('V2', 2),
('V3', 3)) E (id, ord)
On E.Id = T.IDENTIFIER
Order By E.ord;
添加:
groups = []
results = []
for (group, df_gp) in df.groupby('campaign'):
X=df_gp[['date_ordinal']]
y=df_gp.shown
model.fit(X,y)
coefs = list(zip(X.columns, model.coef_))
results.append(model.predict(735947)[0])
groups.append(group)
df_results = pd.DataFrame({'campaign':groups, 'prediction':results})