SQL Query使用Group by 4

时间:2012-09-11 16:10:50

标签: sql oracle

我的表格如下所示。 员工表

Date        Employee ID   Employer ID     Salary
2/3/2011      10            20            45666
3/12/2009     43            53            2356

雇主表

Employer ID     State
53                OH
42                MI  

尝试使用group by子句按月和按州获得总薪水。但没有得到结果。我究竟做错了什么??任何帮助赞赏

select date, sum(salary) from employee
group by to_char(date,'MON')

select sum(salary) from employee A, Employer B
where A.employer id=B.employer id
group by B.state

此外,我需要根据他们的工资获得前10名不同的员工ID

select DISTINCT employee id from employee
where rownum<=10
order by salary desc

1 个答案:

答案 0 :(得分:2)

您必须按选择列表中的确切表达式进行分组,例如,

select to_char(date,'MON'), sum(salary) 
  from employee 
 group by to_char(date,'MON');

您可能希望在第二个查询中包含该状态:

select b.state, sum(salary) 
  from employee A, Employer B  
 where A.employer_id=B.employer_id  
 group by B.state;

一般来说,在你的问题中说明你“没有得到结果”对你要求帮助的人来说并不是很有帮助。请提供描述“未获得结果”的含义的任何错误消息或输出。