Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >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

复制
相关文章
c sharp 的输入,输入,switch语句。
创建一个控制台应用程序,从键盘输入一个小写字母,要求输出该小写字母,其对应的大写字母,以及值。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] a
热心的社会主义接班人
2018/05/16
1.6K0
为什么变量不可以在 switch 语句中声明定义
case 语句其实就是标签(label),就像 goto 语句那样,解决这个问题其实很简单,只需加一对大括号,以表明作用域即可,
ClearSeve
2022/02/11
7610
C语言中switch语句_switch在c语言中
本篇文章帮大家学习c语言switch语句,包含了C语言switch语句使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。
全栈程序员站长
2022/09/27
2.7K0
我可以在不source脚本的情况下将变量从Bash脚本导出到环境中吗
有没有一种方法可以通过只执行 export.bash 而不 source 它获取 $VAR?
程序熵
2023/09/25
1.3K0
我可以在不source脚本的情况下将变量从Bash脚本导出到环境中吗
switch语句
使用if语句嵌套解决实际问题中的多分支选择时,如果分支数目非常多,那么if语句的嵌套层数也会很多,使得程序代码变得冗长而且可读性会下降。C语言提供了switch语句来处理多分支选择。
pigeon
2022/04/11
1.6K0
switch语句
浅谈Java中switch分支语句
在程序中遇到多分支选择的时候,想必大家都喜欢用if...else if...else...语句,尤其是初学者,因为在了解switch语句之前,我也是只会用if...else语句。那么现在看完这篇随笔的介绍后,你们又有了另外一种选择,使用switch语句可以增强代码的可能性,当然switch也不是随随便便就能用的,它也有语法规则的约束,请看下面的介绍。
硕人其颀
2020/06/02
9560
Switch语句
当case数目多,数字比较集中时,使用完美哈希函数生成跳转表,性能高于if-else。
luoheng
2022/08/29
1.3K0
在推荐系统中,我还有隐私吗?联邦学习:你可以有
随着互联网覆盖范围的扩大,越来越多的用户习惯于在网上消费各种形式的内容,推荐系统应运而生。推荐系统在我们的日常生活中无处不在,它们非常有用,既可以节省时间,又可以帮助我们发现与我们的兴趣相关的东西。目前,推荐系统是消费领域最常见的机器学习算法之一[1]。以网络新闻为例,由于每天都有大量的新闻文章发布在网上,在线新闻服务的用户面临着严重的信息过载。不同的用户通常喜欢不同的新闻信息。因此,个性化新闻推荐技术被广泛应用于用户的个性化新闻展示和服务中。关于新闻的推荐算法 / 模型研究已经引起了学术界和产业界的广泛关注。
机器之心
2020/12/03
5.2K0
在推荐系统中,我还有隐私吗?联邦学习:你可以有
JavaScript switch 语句
工作原理:首先设置表达式n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用break来阻止代码自动地向下一个 case 运行。
陈不成i
2021/07/16
1.3K0
【答疑解惑】java中switch语句陷阱
语音版: 今天群中小伙伴们遇到了一个switch问题我给大家讲解一下,算是Java中的小陷阱吧。 Java中的switch语句穿透: 今天一同学写了类似下面的代码: int a = 2; switch (a) { case 1: System.out.println(" 1 "); case 2: System.out.println(" 2 "); case 3: System.out.println(" 3 "); case
程序员互动联盟
2018/03/13
1.3K0
java switch用法_Java switch语句
Java switch语句用于从多个条件执行一个语句。它就像if-else-if语句一样。
全栈程序员站长
2022/09/08
1.8K0
.c中变量必须定义在执行语句前面
int main() { int a =1;     a = 2;     int b = 3;
saintyyu
2021/11/22
2K0
.c中变量必须定义在执行语句前面
C语言switch语句的用法详解_c语言switch语句例题
C语言虽然没有限制 if else 能够处理的分支数量,但当分支过多时,用 if else 处理会不太方便,而且容易出现 if else 配对出错的情况。例如,输入一个整数,输出该整数对应的星期几的英文表示:
全栈程序员站长
2022/09/27
1.7K0
JavaScript Switch 语句
工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。
一觉睡到小时候
2019/07/03
7370
Java的控制语句switch
Java中的switch语句是一种常见的控制结构,它可以根据一个表达式的值,跳转到与之对应的分支执行相应的代码块。
玖叁叁
2023/05/06
6840
switch选择语句
switch选择语句 语法: $a=1;//初始化a switch($a){ case“”: 执行语句 break; ....... case “”: 执行语句 break; default: 执行
十月梦想
2018/08/29
8650
我去,你写的 switch 语句也太老土了吧
昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!”
沉默王二
2020/03/11
4360
c语言switch例题注释,switch语句例子大全 C语言switch语句例题
matlab中switch语句看了好几本教材上的例子都未看懂核心,不知谁能提供if-else-end语句所对应的是多重判断选择,而有时也会遇到多分支判断选择的问题。 MATLAB语言为解决多分支判断选择提供了switch-case语句。 switch-case语句的一般表达形式为: switch〈选择判断量〉 Case 选择判断值1 选择判断语句1 case 选择判
全栈程序员站长
2022/11/03
2.7K0
点击加载更多

相似问题

switch语句可以有多个变量吗?

110

我可以允许用户在嵌套的switch语句中输入字符吗?

111

我可以在Objective-C switch语句中声明变量吗?

541

我可以在Switch语句上使用对象吗?

354

我可以在switch语句中包含cin吗

45
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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