在Oracle SQL中,如何在常规列的旁边返回count(*)列?
select count(*) from TABLE where username = 'USERNAME';
select username,count(*) from TABLE where username = 'USERNAME';
所以我想要计数旁边的用户名,将其扩展为另一个列出众多用户名和记录数的查询。
ORA-00937: not a single-group group function
00937. 00000 - "not a single-group group function"
*Cause:
*Action:
Error at Line: 7 Column: 7
那么,我该怎么办?
答案 0 :(得分:11)
SELECT username,count(*) from TABLE WHERE username='USERNAME' GROUP BY username
应该做的伎俩!
第一个查询的工作原因是因为MySQL可以自动将该查询转换为聚合查询,因为它“理解”您想要计算username ='USERNAME'的所有行。第二个查询不够清楚 - 您正在尝试对查询选择的行执行聚合函数,但您还需要查询的行。我的查询清楚地表明,您只希望从集合中返回一个用户名,因此聚合不是问题。