sql3

2020-02-03  本文已影响0人  xmgh1024

题目描述:

统计出当前各个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

上一篇 下一篇

猜你喜欢

热点阅读