这是表格(新用户,还不能发布图片):
我一直使用Excel,但由于数据集较大,我正在切换到SQL。要在Excel中填充CELL G2,我会使用类似的东西:
=SUM((A2:A8=E2)*(B2:B8))
在Excel中为Cell G2提供了141的值。
我想出了如何在SQL中使用它,但我并不完全理解为什么这样可行。这是我在SQL中使用的:
SET Table2.total_units_purchased = Table1.some_number
FROM Table2 INNER JOIN
(
SELECT Table1.item
, SUM(Table1.units_purchased) AS some_number
FROM Table1
GROUP BY Table1.item
) Table1
ON Table2.item = Table1.item
some_number之前是否需要“AS”?即使我省略“AS”,这仍然有效。
我在这里遗漏了什么?最后一行代码中表格的顺序是否重要?
感谢您的帮助。
答案 0 :(得分:1)
使用'AS'关键字作为别名是可选的,这就是为什么当您省略'AS'时您的查询仍然有效。
其次,在这种情况下,最后一行代码中表的顺序无关紧要。如果您的代码为ON Table1.item = Table2.item
,则查询将以相同的方式工作。请注意,如果您使用左外连接或右外连接,则表顺序很重要。
在您的SQL代码中,您选择了“项目”和该项目的“购买单位总和”,并将这些数据放入另一个表格中,您再次将其重命名为Table1。
然后,您连接两个表,Table2和新的Table1,其中的项目字段具有相同的值。
最后,您选择“已购买单位的总和”字段并将其分配给Table2的total_units_purchased字段。
您可以编写SQL查询,如下所示,这与Excel函数的作用相同。
select sum(table1.units_purchased)
into table2.total_units_purchased
from table1, table2
where Table2.item = Table1.item