考虑以下查询:
查找薪资总额大于所有部门薪资总额平均值的所有部门
with dept_total (dept_name, value) as
(
select dept_name, sum(salary)
from instructor
group by dept_name
),
dept_total_avg(value) as
(
select avg(value)
from dept_total
)
select dept_name
from dept_total, dept_total_avg
where dept_total.value >= dept_total avg.value;
重写此查询而不使用with构造。
SELECT AVG(salary) GROUP BY dept_name;
在不支持CTEs的mySQL版本中,有几种方法可以做到这一点(我想这就是为什么他们让您重写查询以省略with)。另外,您正在按部门计算平均工资,但问题是要找出每个部门的平均总工资,然后返回高于该平均总工资的部分。
https://dbfiddle.uk/?rdbms=mysql_5.5&fiddle=fefea829cff3e20aea93634f9a4114d6
使用子查询:
SELECT dept_name
FROM (
SELECT dept_name, sum(salary) as salaries
FROM instructor GROUP BY dept_name
) d
WHERE salaries > (
SELECT avg(salaries) as avgSalaries FROM (
SELECT dept_name, sum(salary) as salaries
FROM instructor GROUP BY dept_name
) z
)
SELECT dept_name
FROM (
SELECT dept_name, sum(salary) as salaries
FROM instructor GROUP BY dept_name
) d
CROSS JOIN (
SELECT avg(salaries) as avgSalaries FROM (
SELECT dept_name, sum(salary) as salaries
FROM instructor GROUP BY dept_name
) z
) avgs
WHERE salaries > avgs.avgSalaries
SELECT avg(salaries) INTO @avg FROM (
SELECT dept_name, sum(salary) as salaries
FROM instructor GROUP BY dept_name
) z;
SELECT @avg;
SELECT dept_name
FROM instructor GROUP BY dept_name
HAVING sum(salary) > @avg;
问题内容: 我试图在Postgres 9.1.3中使用此查询: 我收到此错误: 我真的很困惑 根据Postgres文档,WITH子句显示正确。如果我在WITH子句中单独运行查询,则会得到正确的结果。 问题答案: 从精美的手册中: 有两种方法可以使用数据库中其他表中包含的信息来修改表:使用子选择,或在子句中指定其他表。 因此,您只需要一个FROM子句: 错误消息甚至说了很多: 错误:缺少表“ sto
但它不起作用,现在我的大脑也不起作用。请帮忙。
我正在使用spring将批处理记录插入数据库。但我得到了一个错误:java。sql。SQLException:无法在java之间转换。util。ArrayList和JAVA\u对象。你能帮帮我吗?我做错什么了 错误: 如果使用硬编码值: 或者当我只通过一个int时,它就起作用了。 请帮忙:)
问题内容: 我有以下SQL表 部 雇员 我想写一条返回的声明 我有 当然,这缺少“男性雇员的数量”。由于不确定,我被困在这里,在哪里指定附加子句e.gender = male。 我忘了提:HQL或标准会很好。 问题答案: 假设原始查询和架构正确:
本节介绍子查询,子查询是嵌套在另一个语句(如:,,或语句)中的查询。 SQL Server中常用的子查询语句如下: 子查询 - 介绍子查询概念并向您展示如何使用各种子查询类型来查询数据。 相关子查询 - 介绍相关子查询概念以及如何使用。 EXISTS - 测试子查询返回的行的存在性。 ANY - 将值与子查询返回的单列值集进行比较,如果值与集合中的任何值匹配则并返回。 ALL - 将值与子查询返回
我去研究了关于JPA2.1规范的信息,这就是我发现的: 用于联接的联接条件来自映射的联接列。这意味着JPQL用户通常不必知道每个关系是如何连接的。在某些情况下,需要在连接条件中附加附加条件,通常是在外部连接的情况下。这可以通过ON子句来实现。ON子句在JPA2.1规范中定义,某些JPA提供程序可能支持ON子句。EclipseLink:Hibernate:TopLink-支持ON子句。 需要注意的是