如何计算名字以a,b,c开头的雇员的sal?

时间:2015-04-04 10:28:19

标签: mysql sql sql-server

create table Emp(emp_name varchar(20),emp_sal int)

insert into Emp values
('amit',100),('animesh',200),('ashish',300),('ashok',400),
('ramesh',500),('ratan',600),('rajesh',700),
('lokesh',300),('lalit',900),('lakhan',800)
  

我可以计算出名字以“A”,“R”,“L”开头的员工的工资总额,甚至我希望它在表格中显示一个唯一的ID,如

emp_id         total_sal
 A               1000
 R               1800
 L               2000
  

我试过这样的

select sum(emp_sal)as from emp where emp_name like 'a%'
  

但不知道接下来该做什么

3 个答案:

答案 0 :(得分:0)

这几乎适用于所有RDBMS,MySQL,MS SQL Server,Oracle,Postgre,......因为您在问题中标记了多个RDBMS

select q.emp_id, sum(q.emp_sal)
from (
select case 
           when emp_name like 'A%' then 'A'
           when emp_name like 'R%' then 'R'
           when emp_name like 'L%' then 'L'
        end as emp_id,
       emp_sal 
from emp where emp_name like 'A%' or emp_name like 'R%' or emp_name like 'L%'
) q
group by  q.emp_id

答案 1 :(得分:0)

SELECT LEFT(emp_name, 1) first_letter, sum(emp_sal)
  FROM emp
  WHERE LEFT(emp_name, 1) IN ('a', 'r', 'l')
  GROUP BY LEFT(emp_name, 1);

这里举例说明:http://sqlfiddle.com/#!9/436b8/2

可以在mysql和sql-server中使用。

答案 2 :(得分:0)

从emp选择upper(substring(emp_name,1,1)),sum(emp_sal) 其中emp_name喜欢('a%')或emp_name喜欢('r%')或emp_name喜欢('l%') group by upper(substring(emp_name,1,1))