Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >stddev和avg of 2表oracle

stddev和avg of 2表oracle
EN

Stack Overflow用户
提问于 2021-11-29 14:08:17
回答 2查看 38关注 0票数 0

如果我在Oracle SQL Developer中有两个表: movies和movie_types。

包含值的表'movies‘:movie_id、movie_title、movie_qty、movie_value和movie_cat_id。

表'movie_types‘包含值: movie_cat_id和movie_category。

如何显示movie_title、movie_category,然后显示大于movie_qty的所有电影movie_qty的至少1个标准开发版本的movie_qty?

这是一个家庭作业问题,这个问题本身让我有点困惑,我找不到类似的例子。

以下是表格数据:

代码语言:javascript
运行
AI代码解释
复制
CREATE TABLE movie
(movie_id number(2),
movie_title varchar2(40),
movie_qty number(2),
movie_value number(2),
movie_cat_id number(2));

CREATE TABLE movie_types
(movie_cat_id number(2),
movie_category varchar2(30));

INSERT INTO movie VALUES(1, 'Alien', 5, 10, 1);
INSERT INTO movie VALUES(2, 'Bladerunner', 3, 8, 1);
INSERT INTO movie VALUES(3, 'Star Wars', 11, 15, 1);
INSERT INTO movie VALUES(4, 'Texas Chainsaw Massacre', 2, 7, 2);
INSERT INTO movie VALUES(5, 'Jaws', 1, 7, 2);
INSERT INTO movie VALUES(6, 'The Good, the Bad, and the Ugly', 2, 7, 3);
INSERT INTO movie VALUES(7, 'Silverado', 1, 7, 3);
INSERT INTO movie VALUES(8, 'Duck Soup', 1, 5, 4);
INSERT INTO movie VALUES(9, 'Planes, Trains, and Automobiles', 3, 5, 4);
INSERT INTO movie VALUES(10, 'Waking Ned Devine', 4, 12, 4);
INSERT INTO movie VALUES(11, 'Deep Blue Sea', 3, 14, 5);
INSERT INTO movie VALUES(12, 'The Fifth Element', 5, 15, 5);

INSERT INTO movie_types VALUES(1, 'SciFi');
INSERT INTO movie_types VALUES(2, 'Horror');
INSERT INTO movie_types VALUES(3, 'Western');
INSERT INTO movie_types VALUES(4, 'Comedy';
INSERT INTO movie_types VALUES(5, 'Drama');

我试过了:

代码语言:javascript
运行
AI代码解释
复制
select movie_category, movie_title,
(avg(movie_qty)),
(stddev(movie_qty))
from movie, movie_type
where movie_type.movie_cat_id = movie.movie_cat_id
group by movie.movie_cat_id;

我知道这是错误的,如果有人能提供一些指导,我将不胜感激!提前感谢让我知道,如果需要澄清。

EN

回答 2

Stack Overflow用户

发布于 2021-11-29 14:38:03

因为这是家庭作业。

这可以使用analytic functions来完成。查询就快完成了,您只需通过删除GROUP BY子句并添加OVER (...)子句将聚合函数转换为分析函数即可:

代码语言:javascript
运行
AI代码解释
复制
SELECT movie_category,
       movie_title,
       movie_qty,
       AVG(movie_qty)    OVER () AS avg_movie_qty,
       STDDEV(movie_qty) OVER () AS stddev_movie_qty
FROM   movie
       INNER JOIN movie_types
       ON movie_types.movie_cat_id = movie.movie_cat_id

将输出每部电影的类别、标题和数量,以及整个结果集上的平均和标准偏差OVER窗口。

然后,您需要更进一步,并将其包装在一个外部查询中,该查询将过滤行,添加一个WHERE子句,将数量与平均值加一个标准差进行比较。我会把它留给你来完成。

另一种方法是接受您的查询,同样没有GROUP BY子句,并添加一个过滤器来比较数量:

代码语言:javascript
运行
AI代码解释
复制
SELECT movie_category,
       movie_title
FROM   movie
       INNER JOIN movie_types
       ON movie_types.movie_cat_id = movie.movie_cat_id
WHERE  movie_qty > ( ... )

然后,可以在大括号中放置子查询,该子查询计算整个结果集的数量加上一个标准差的平均值(注意:如果要计算整个结果集的平均值,则不需要GROUP BY子句)。

db<>fiddle

票数 0
EN

Stack Overflow用户

发布于 2021-11-29 14:53:34

一种老式的方法是在子查询中计算STDDEV。

因为它只有1个结果,所以你可以不用担心交叉连接到它。

代码语言:javascript
运行
AI代码解释
复制
SELECT movie_category, movie_title, movie_qty
-- , stddev_movie_qty
FROM movie
JOIN movie_types
  ON movie_types.movie_cat_id = movie.movie_cat_id
CROSS JOIN (
   SELECT 
     STDDEV(movie_qty) AS stddev_movie_qty 
   FROM movie
) stats
WHERE movie_qty > stddev_movie_qty

关于db<>fiddle 的演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70161909

复制
相关文章
如何使用 Tmuxp 来优雅的管理多个 Tmux 会话
事实上,tmuxp 也是一个构建于 tmux 之上的对象关系映射的 ORM 的 API 工具,就是利用 tmux 工具定义的窗格(pane)、窗口(windows)和会话(session),以创建关联视图的 Server, Session, Window, Pane 对象。我们在使用的时候,可以使用 YAML, JSON 以及 dict 字配置项来启动我们配置好的窗口和面板。使用时候需要注意的是,只支持 tmux>=1.8 的版本。
iMike
2021/05/18
4.4K0
如何使用 Tmuxp 来优雅的管理多个 Tmux 会话
如何使用SMBSessionSpoofer伪造SMB会话
 关于SMBSessionSpoofer  SMBSessionSpoofer是一款针对SMB会话的安全工具,该工具可以帮助广大研究人员轻松创建出一个伪造的SMB会话,并以此来欺骗攻击者访问和进入蜜罐设备。该工具虽然结构简单,但功能强大,我们只需要将其cpp主程序文件下载下来,并在Visual Studio 2019中进行编译后,即可上手使用。  工具机制  当攻击者运行SharpHound并收集目标组织中的会话信息时,会根据自己的经验来分析针对目标主体的攻击路径,并且还可以识别在第二层基础设施(工作站)中
FB客服
2023/03/30
2.5K0
如何使用SMBSessionSpoofer伪造SMB会话
PythonWebServer如何同时处理多个请求
源于知乎上一个问题:https://www.zhihu.com/question/56472691/answer/293292349
the5fire
2019/03/01
1.9K0
使用node.js如何简单快速的搭建一个websocket聊天应用
var ws = require(“nodejs-websocket”); console.log(“开始建立连接…”)
马克社区
2022/06/13
4610
使用node.js如何简单快速的搭建一个websocket聊天应用
初始化项目 npm init 安装nodejs-websocket npm install nodejs-websocket 创建并编辑启动文件 创建一个名为app.js文件,并且编辑它。 var ws = require("nodejs-websocket"); console.log("开始建立连接...") var [user1,user2,user1Ready,user2Ready] = [null,null,false,false]; ws.createServer(function(
Vam的金豆之路
2021/12/01
6420
使用node.js如何简单快速的搭建一个websocket聊天应用
通过跳板机管理多个ssh会话
为了加强服务器的安全性,一般情况下,服务器的登陆管理都通过跳板机(或堡垒机)进行管理和维护,内网的之间的ssh并不对外开放.
明哥的运维笔记
2020/06/30
1.8K0
通过跳板机管理多个ssh会话
Node.js如何处理健壮性
在极客教育出版了一个视频是关于《Node.js 异常处理-健壮性》,本文章主要是从内容上介绍如何来处理Node.js异常问题。如果希望学习可前往极客学院:http://www.jikexueyuan.com/course/2373.html 本文章的关键词 - 进程退出 - 内存泄漏 - domain安全保护 ---- Node.js 异常的危害 很多初学的同学很少会关注Node.js的服务安全问题,而当服务器在生成环境遇到此类问题时,又会显得速手无策,因此在学习Node.js的初期了解其
蛋未明
2018/06/07
1.1K0
Node.js 是如何处理请求的
前言:在服务器软件中,如何处理请求是非常核心的问题。不管是底层架构的设计、IO 模型的选择,还是上层的处理都会影响一个服务器的性能,本文介绍 Node.js 在这方面的内容。
theanarkh
2023/10/04
5230
Node.js 是如何处理请求的
Node.js内存溢出时如何处理?
Node.js 做密集型运算,或者所操作的数组、对象本身较大时,容易出现内存溢出的问题,这是由于 Node.js 的运行环境依赖 V8 引擎导致的。如果经常有较大数据量运算等操作,需要对 Node.js 运行环境限制有充分的了解。
coder_koala
2019/08/21
4.9K0
Node.js内存溢出时如何处理?
PHP的会话处理函数session
当运行一个应用程序时,你会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。
于果
2021/08/25
2.5K0
PHP会话处理相关函数介绍
在PHP开发中,比起Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,这里我们详细介绍一下PHP处理会话函数将要用到10个函数。 PHP
wangxl
2018/03/07
1.3K0
PHP会话处理相关函数介绍
Arduino如何同时使用多个串口
如果想要给Arduino UNO R3同时接上WiFi模块和蓝牙模块时,但是Arduino的串口只有一个,怎样才能让Arduino同时使用多个串口呢?
小雨coding
2020/06/09
4.9K0
Arduino如何同时使用多个串口
如何正确使用Node.js事件[每日前端夜话0x4B]
事件驱动的编程变得流行之前,在程序内部进行通信的标准方法非常简单:如果一个组件想要向另外一个发送消息,只是显式地调用了那个组件上的方法。但是在 react 中用的却是事件驱动而不是调用。
疯狂的技术宅
2019/04/23
3.6K0
如何正确使用Node.js事件[每日前端夜话0x4B]
Node.js RESTful API如何使用?
REST(Representational State Transfer)是一种软件架构风格,用于设计网络应用程序的通信方式。RESTful API 是基于 REST 架构风格的 API 设计,它使用标准的 HTTP 方法(GET、POST、PUT、DELETE 等)来进行资源的操作和交互。
网络技术联盟站
2023/07/07
4610
JS中如何处理多个ajax并发请求?
通常 为了减少页面加载时间,先把核心内容显示处理,页面加载完成后再发送ajax请求获取其他数据 这时就可能产生多个ajax请求,为了用户体验,最好是发送并行请求,这就产生了并发问题,应该如何处理? (1)并行改串行 如果业务逻辑和用户体验允许的情况下,可以改为串行,处理起来最简单 function async1(){ //do sth... async2(); } function async2(){ //do sth... } async1(); (2)回调计数 function
dys
2018/04/02
5.6K0
如何处理会话等待事件与ORA-21780故障
作者 | 张维照,Oracle ACEA,2006年起从事数据库管理工作,2009年转 Oracle,从事过多套 TB 级省级工商、医疗、交通、人社、电信运营等数据库维护优化工作,擅长Oracle 数据库性能问题的分析与解决,Oracle数据库故障分析,Oracle数据库升级迁移。
数据和云
2018/12/24
1K0
Seata如何处理跨多个请求的事务?
Seata 是一种开源的分布式事务解决方案,能够处理跨多个请求的事务,适用于各种容器、语言和数据访问类型。在微服务架构下,依赖多个服务的操作可能导致分布式事务的问题。Seata 提供了完整的解决方案以确保数据的一致性和可靠性。
用户1289394
2023/09/11
3460
Seata如何处理跨多个请求的事务?
Node.js 如何处理 ES6 模块
一种是 ES6 模块,简称 ESM;另一种是 Node.js 专用的 CommonJS 模块,简称 CJS。这两种模块不兼容。
ruanyf
2020/08/22
7260
Angular 使用 RxJS 优化处理多个Http请求
注意:上面的this.http.get... 处理HTTP最好放到单独的Service文件中,再注入到Component。这里为了演示没有这么做。
mafeifan
2019/03/15
4.2K0
关于node.js:ExpressJS、Websocket中的session会话共享
最近在使用Nodejs+TypeScript编写一个简单通用的框架,包含如下功能: 一、物联网接口: (1)、后台接口框架 (2)、http服务器 (3)、websocket服务器 (4)、http与websocket关联,添加session
ccf19881030
2020/07/22
2.3K0

相似问题

Node.js:处理多个会话

12

使用php与多个会话聊天

10

使用SignalR的多个聊天会话

12

使用多个前端处理PHP会话

12

node.js websocket聊天以处理并行颜色

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档