如何从 4 个变量中得到 SQL 中的两个变量?
How make from 4 variables only two in SQL?
我有以下table
并希望达到以下结果
因此,组 1 和组 2 被分组到 GROUP,quantity1/2 被分组到 QUANTITY。我尝试使用交叉应用,但 table 开始变得太大并且重复。
您可以应用UNION
操作,如下:
SELECT date, fund, group1 as grp, quantity1 as quantity
FROM yourtable
UNION ALL
SELECT date, fund, group2, quantity2
FROM yourtable
我使用了 UNION ALL
因为你的 group1 和 group2 总是不同的(作为你的数据样本),所以你不应用 ALL
,不同的操作。
在 SQL 服务器中,我建议 cross apply
逆向旋转:
select t.date, t.fund, x.*
from mytable t
cross apply (values (t.group1, t.quantity1), (t.group2, t.quantity2)) as x(grp, qty)
横向联接是一个强大的工具。这比 union all
更有效,因为 table 只扫描一次。
我有以下table
并希望达到以下结果
因此,组 1 和组 2 被分组到 GROUP,quantity1/2 被分组到 QUANTITY。我尝试使用交叉应用,但 table 开始变得太大并且重复。
您可以应用UNION
操作,如下:
SELECT date, fund, group1 as grp, quantity1 as quantity
FROM yourtable
UNION ALL
SELECT date, fund, group2, quantity2
FROM yourtable
我使用了 UNION ALL
因为你的 group1 和 group2 总是不同的(作为你的数据样本),所以你不应用 ALL
,不同的操作。
在 SQL 服务器中,我建议 cross apply
逆向旋转:
select t.date, t.fund, x.*
from mytable t
cross apply (values (t.group1, t.quantity1), (t.group2, t.quantity2)) as x(grp, qty)
横向联接是一个强大的工具。这比 union all
更有效,因为 table 只扫描一次。