我有一个简单的查询:
SELECT stco, sum(STSD) As "Shipped Dollars"
FROM MSTDW
这表示选择列 stco 有问题。
但是,这两个字段都存在,并且:
SELECT stco
FROM MSTDW
工作,这
SELECT sum(STSD) As "Shipped Dollars"
FROM MSTDW
也可以。
两者兼有有什么问题?
谢谢
我有一个简单的查询:
SELECT stco, sum(STSD) As "Shipped Dollars"
FROM MSTDW
这表示选择列 stco 有问题。
但是,这两个字段都存在,并且:
SELECT stco
FROM MSTDW
工作,这
SELECT sum(STSD) As "Shipped Dollars"
FROM MSTDW
也可以。
两者兼有有什么问题?
谢谢
我想你想要这个,一组,得到每个的总和stco
SELECT stco, sum(STSD) As "Shipped Dollars"
FROM MSTDW
group by stco
对于应用聚合函数,您需要分组;无论如何,如果你只想要 ALL 列的总和(我不认为你想要那个,但我添加它以防万一)做
SELECT stco, (select sum(STSD) from MSTDW) As "Shipped Dollars"
FROM MSTDW
group by stco
这将列出每个stco
,并重复sum
所有列
为了使用聚合函数(例如SUM
),您需要定义分组条件:
SELECT stco, sum(STSD) As "Shipped Dollars"
FROM MSTDW
GROUP BY stco
您的第二个查询没有工作的原因是因为该组在您要求stco
的单个值中是隐式的(即无条件总和) 。SUM
嗯,stco
不是聚合的,所以你必须添加到GROUP BY
SELECT stco, SUM(STSD) AS "Shipped Dollars"
FROM MSTDW
GROUP BY stco
但是,您也可以应用聚合stco
,如下所示:
SELECT AVG(stco) AS SomeValue, SUM(STSD) AS "Shipped Dollars"
FROM MSTDW
通常,所有值都必须聚合或位于分组键部分中,这将分隔数据的聚合区域。