将聚合函数与列表项结合使用时出现SQL错误

时间:2014-11-07 16:19:41

标签: sql ms-access-2010 aggregate-functions

我最近才开始学习SQL。我们正在使用MS Access(2010年,在我的情况下)。没有任务是我必须列出一个名为" radnik"的列表中的工人数量。在不同的公司工作地点工作(标记为" brod")。所以我写下来了:

SELECT brod, COUNT(*) AS count
FROM radnik
ORDER BY brod;

列表中大约有18个人,所有人都有10,20,30,40或50的值,所以它应该制作一个表格,例如:

brod | count
10   | 5
20   | 9
...

我得到了,错误,但是:
您尝试执行的查询不包含指定的表达式' brod'作为集合函数的一部分。

很明显,我做错了什么,但我对SQL仍然很陌生。如果有人可以向我解释为什么这不起作用以及如何修复它,那么我非常非常。

2 个答案:

答案 0 :(得分:2)

您需要GROUP BY

SELECT brod, COUNT(*) AS count
FROM radnik
GROUP BY brod
ORDER BY brod;

简而言之:只要您使用像COUNT这样的聚合函数,所有其他选定的列也需要在GROUP BY子句中。

答案 1 :(得分:1)

您错过了group by条款:

SELECT   brod, COUNT(*) AS count
FROM     radnik
GROUP BY brod
ORDER BY brod;