sql题

 题目描述:

统计出当前各个title类型对应的员工当前(to_date='9999-01-01')薪水对应的平均工资。结果给出title以及平均工资avg。

    CREATE TABLE `salaries` (
    `emp_no` int(11) NOT NULL,
    `salary` int(11) NOT NULL,
    `from_date` date NOT NULL,
    `to_date` date NOT NULL,
    PRIMARY KEY (`emp_no`,`from_date`));
    CREATE TABLE IF NOT EXISTS "titles" (
    `emp_no` int(11) NOT NULL,
    `title` varchar(50) NOT NULL,
    `from_date` date NOT NULL,
    `to_date` date DEFAULT NULL);

题解:

此题用到了AVG()求平均值的函数,和分组group by关键字。
要查的结果在两个不同的表中,用到了联表查询。
这里需要排除一个误区:当联表查询的时候能不能用分组?
答案是肯定的,因为group by 是对select 后的结果进行分组,跟要查询多少个表没有关系。

故答案为:
  
    select title,AVG(s.salary) from titles t,salaries s where 
    t.emp_no=s.emp_no 
    and t.to_date='9999-01-01'
    and s.to_date='9999-01-01'
    group by title

做成比做好更重要
原文地址:https://www.cnblogs.com/fruit1024/p/12257332.html