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;
但它不起作用,现在我的大脑也不起作用。请帮忙。
您需要在没有访问中间cte的情况下计算部门平均值DEPT_Total
SELECT
dept_total.dept_name, dept_total.value, cj.dept_av
FROM (
SELECT
dept_name, SUM(salary) value
FROM instructor
GROUP BY
dept_name
) AS dept_total
CROSS JOIN (
SELECT
SUM(salary) / (COUNT(DISTINCT dept_name) * 1.0) dept_av
FROM instructor
) cj
WHERE dept_total.value >= cj.dept_av
;
在原始查询中有2个“公共表表达式”(cte),每个表达式都有一个名称,以便以后可以引用它们。
其中第一个名称为dept_total
考虑以下查询: 查找薪资总额大于所有部门薪资总额平均值的所有部门 重写此查询而不使用with构造。
com.ibm.DB2.jcc.am.sqlsyntaxerroreXception:DB2 SQL错误:sqlcode=-199,sqlstate=42601,sqlerrmc=with;具有WHERE组顺序相交减除UNION),FETCH,driver=4.19.26 但是,如果我直接在大型机控制台中运行相同的查询,它工作得很好。 如何在Spark的sql上下文中使用WITH子句? filt_
问题内容: 我将如何在没有硬编码值的情况下编写此sql语句? 宁愿有这样的事情: 提前致谢.. 问题答案: 用您当前的方式构造SQL查询是一个糟糕的主意,因为它为各种SQL注入攻击打开了大门 。为了正确执行此操作,您必须改为使用“ 预备语句”。这也将解决您目前显然遇到的各种逃避问题。 请注意,这是一个昂贵的调用(除非您的应用程序服务器使用语句缓存和其他类似的功能)。从理论上讲,最好先准备一次语句,
问题内容: 是否可以在WHERE子句中使用LIMIT x? 如果是这样,怎么办? 我正在尝试这样做: 但我收到以下错误: 问题答案: 应该在之后。 句法 :
我正在使用spring将批处理记录插入数据库。但我得到了一个错误:java。sql。SQLException:无法在java之间转换。util。ArrayList和JAVA\u对象。你能帮帮我吗?我做错什么了 错误: 如果使用硬编码值: 或者当我只通过一个int时,它就起作用了。 请帮忙:)
当我尝试执行删除时,将设置为