我可以使用带有子句的字符串类型(比如....有性别='男性')

时间:2017-08-06 16:37:13

标签: mysql database oracle11g group-by having-clause

选择国家/地区,按ID <4的国家/地区从员工组中计算(); 此查询工作正常但我使用时 选择国家/地区,按性别分类的员工组计算()=&#39;男性&#39 ;; 显示错误:-ORA-00979:不是GROUP BY表达式 为什么?

1 个答案:

答案 0 :(得分:1)

第一项应该有效,因为国家/地区和国家/地区之间存在相同的汇总级别(每个国家/地区只有一个ID)

第二个不起作用,因为性别不是聚合列,并且没有相同的聚合级别,所以

如果你不需要聚合条款

中的性别,你应该使用过滤器的位置
  select country,count(*) from employee 
  where  sex='male'
  group by country;

或者您可以通过并过滤

来添加性别
  select country,sex,  count(*) from employee 
  group by country, sex
  having sez='male';