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%'
但不知道接下来该做什么
答案 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))