精华内容
下载资源
问答
  • 1.案例:SELECT GREATEST(‘36‘, ‘55‘, ‘34‘) V_MAX, LEAST(‘36‘, ‘55‘, ‘34‘) V_MINFROM DUALOracle比较一列的最大值或者最小值,我们会不假思索地用MAX和MIN函数,但是对于比较一行的最大值或最小值呢...

    1.案例:

    SELECT GREATEST(‘36‘, ‘55‘, ‘34‘) V_MAX, LEAST(‘36‘, ‘55‘, ‘34‘) V_MIN

    FROM DUAL

    Oracle比较一列的最大值或者最小值,我们会不假思索地用MAX和MIN函数,但是对于比较一行的最大值或最小值呢?是不是日常用的少,很多人都不知道有ORACLE也有内置函数实现这个功能:COALESCE / GREATEST / LEAST.

    1. COALESCE 返回该表达式列表的第一个非空value。

    格式: COALESCE(value1, value2, value3, …)

    含义: 返回value列表第一个非空的值。

    value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。

    EXAMPLE: select coalesce (1, null, 2 ) from dual ; — 返回1

    select coalesce ( null, 2, 1 ) from dual ; — 返回2

    select coalesce (t.empno, t.mgr ) from  scott.emp t ; — 效果类似 NVL( t.empno, t.mgr )

    2. GREATEST 返回值列表中最大值

    格式: GREATEST(value1, value2, value3, …)

    含义: 返回value列表最大的值。

    value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。

    当value值列表中有一个为NULL,则返回NULL值。

    EXAMPLE: select greatest (1, 3, 2 ) from dual ; — 返回3

    select greatest ( ‘A’, ‘B’, ‘C’ ) from dual ; — 返回C

    select greatest (null, ‘B’, ‘C’ ) from dual ; — 返回null

    select greatest (t.empno, t.mgr ) from  scott.emp t ; — 返回empno和mgr 较大值

    3. LEAST 返回值列表中最小值

    格式: LEAST(value1, value2, value3, …)

    含义: 返回value列表最小的值。

    value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。

    当value值列表中有一个为NULL,则返回NULL值。

    EXAMPLE: select least (1, 3, 2 ) from dual ; — 返回1

    select least ( ‘A’, ‘B’, ‘C’ ) from dual ; — 返回A

    select least (null, ‘B’, ‘C’ ) from dual ; — 返回null

    select least (t.empno, t.mgr ) from  scott.emp t ; — 返回empno和mgr 较小值

    展开全文
  • 【解法2】来自群里梁老师,该方法将if的两个条件判断作积,同时乘积才为真,而后返回C:C数据。 注意:输入公式后,需要按键盘上的ctrl+shift+enter键才是以数组的方式来处理,出现公式中的{}符号。 ...

    【问题描述】如下表所示,求出各年份类型为"通过"的学生成绩的最高分

    1. 分年份求

    2. 求通过的学生才统计

    3. 保持数据表不变,不用分类汇总,不删除多余数据

    【解法1】来自 群里 黄老师,核心在于两个if语句的嵌套,慢慢理解。

     【解法2】来自群里梁老师,该方法将if的两个条件判断作积,同时乘积才为真,而后返回C:C数据。

     注意:输入公式后,需要按键盘上的ctrl+shift+enter键才是以数组的方式来处理,出现公式中的{}符号。

    相同的用法还可以延伸到求平均值、最小值等,需要排除一定条件后再求值

    展开全文
  • 查询结果的最大值的一行数据 先用order by 字段 desc 使得结果排序 再用limit 1得到结果的第一行 问题:SqlServer没有limit怎么实现。。。待验证

    mysql、oralce  可以取查询结果的最大值的一行数据

    先用order by  字段  desc    使得结果排序 

    再用limit 1 得到结果的第一行

     

    SqlServer不支持limit,但是可以用 top 1 来得到

     

    但是如果想取得group  by 后分组里面的第一行,上面的方法就不适用 只能先group  by 得到分组后的每一个组的关键字,再去查找一遍这个表条件符合这个关键字的数据
     

    展开全文
  • mysql 取最大值列的问题

    千次阅读 2021-02-01 19:51:31
    需求: 查询/更新某列(id) 最大值的行.尝试1:select * from table where id =max(select max(id) from table); --可以通过update table set name='new name' whereid =max(select max(id) from table); --不能可以...

    需求: 查询/更新某列(id) 最大值的行.

    尝试1:

    select * from table where id =max(select max(id) from table); --可以通过

    update table set name='new name' where  id =max(select max(id) from table); --不能可以通过

    不能通过原因 ,求解释?

    尝试2: 通过用户变量:(可行)

    select    @maxid  :=max(id) from hchkpage;

    update hchkpage set payeename  = 'new name' where id =@maxid;

    此方法可行, 局限在数据库客户端, 在程序中不能使用.

    通过参考mysql官方文档:

    想到此方法:

    update hchkpage set payeename='good' order by id desc limit 1;

    :通过条件排序和使用limit限制查询条数可取得最大行 ,执行更新.

    总结: 遇到问题参考官方文档.

    1

    0

    分享到:

    18e900b8666ce6f233d25ec02f95ee59.png

    72dd548719f0ace4d5f9bca64e1d7715.png

    2012-10-17 17:57

    浏览 11972

    分类:数据库

    评论

    babaoqi 写道

    jinnianshilongnian 写道

    babaoqi 写道

    jinnianshilongnian 写道

    babaoqi 写道

    jinnianshilongnian 写道

    babaoqi 写道

    update table,(select max(id) as id from table) as ttab

    set table.name='new name'

    where  table.id =ttab.id

    你试过吗?

    一直这么用,你执行的时候报错了么?能把错误信息帖下吗

    你用的是哪个版本 看了下5.5支持  我用的是5.3

    5.5.23

    哦 我说呢,看了下最新文档 支持这种多表更新 看了下oracle10g的文档也是不支持

    38687d1a1ad71d37c86f287056834d1a.gif

    我以前用的是5.1,这么用也是没问题的。刚刚在官网下了个安装包,测试也是没问题的

    [img]

    mysql>

    mysql> show create table test.tt\G;

    *************************** 1. row ***************************

    Table: tt

    Create Table: CREATE TABLE `tt` (

    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,

    `name` varchar(12) NOT NULL DEFAULT '',

    `age` int(11) NOT NULL DEFAULT '0',

    PRIMARY KEY (`id`),

    KEY `age` (`age`)

    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

    1 row in set (0.01 sec)

    ERROR:

    No query specified

    mysql> select version();

    +------------------+

    | version()        |

    +------------------+

    | 5.1.30-community |

    +------------------+

    1 row in set (0.00 sec)

    mysql> select * from test.tt;

    +----+---------+------+

    | id | name    | age  |

    +----+---------+------+

    |  1 | newname |    4 |

    |  2 | 11addfa |   22 |

    |  3 | 2dfe    | 4444 |

    |  4 | newname |    4 |

    +----+---------+------+

    4 rows in set (0.00 sec)

    mysql> UPDATE test.tt,(SELECT MAX(id) AS id FROM test.tt) AS t2 SET tt.age=age*2

    WHERE tt.id=t2.id;

    Query OK, 1 row affected (0.00 sec)

    Rows matched: 1  Changed: 1  Warnings: 0

    mysql> select * from test.tt;

    +----+---------+------+

    | id | name    | age  |

    +----+---------+------+

    |  1 | newname |    4 |

    |  2 | 11addfa |   22 |

    |  3 | 2dfe    | 4444 |

    |  4 | newname |    8 |

    +----+---------+------+

    4 rows in set (0.00 sec)

    mysql>

    [/img]

    哦  我使用的版本

    5.4.3-beta-community

    我看官方给的文档也是可以的

    12 楼

    babaoqi

    2012-10-19

    jinnianshilongnian 写道

    babaoqi 写道

    jinnianshilongnian 写道

    babaoqi 写道

    jinnianshilongnian 写道

    babaoqi 写道

    update table,(select max(id) as id from table) as ttab

    set table.name='new name'

    where  table.id =ttab.id

    你试过吗?

    一直这么用,你执行的时候报错了么?能把错误信息帖下吗

    你用的是哪个版本 看了下5.5支持  我用的是5.3

    5.5.23

    哦 我说呢,看了下最新文档 支持这种多表更新 看了下oracle10g的文档也是不支持

    38687d1a1ad71d37c86f287056834d1a.gif

    我以前用的是5.1,这么用也是没问题的。刚刚在官网下了个安装包,测试也是没问题的

    [img]

    mysql>

    mysql> show create table test.tt\G;

    *************************** 1. row ***************************

    Table: tt

    Create Table: CREATE TABLE `tt` (

    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,

    `name` varchar(12) NOT NULL DEFAULT '',

    `age` int(11) NOT NULL DEFAULT '0',

    PRIMARY KEY (`id`),

    KEY `age` (`age`)

    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

    1 row in set (0.01 sec)

    ERROR:

    No query specified

    mysql> select version();

    +------------------+

    | version()        |

    +------------------+

    | 5.1.30-community |

    +------------------+

    1 row in set (0.00 sec)

    mysql> select * from test.tt;

    +----+---------+------+

    | id | name    | age  |

    +----+---------+------+

    |  1 | newname |    4 |

    |  2 | 11addfa |   22 |

    |  3 | 2dfe    | 4444 |

    |  4 | newname |    4 |

    +----+---------+------+

    4 rows in set (0.00 sec)

    mysql> UPDATE test.tt,(SELECT MAX(id) AS id FROM test.tt) AS t2 SET tt.age=age*2

    WHERE tt.id=t2.id;

    Query OK, 1 row affected (0.00 sec)

    Rows matched: 1  Changed: 1  Warnings: 0

    mysql> select * from test.tt;

    +----+---------+------+

    | id | name    | age  |

    +----+---------+------+

    |  1 | newname |    4 |

    |  2 | 11addfa |   22 |

    |  3 | 2dfe    | 4444 |

    |  4 | newname |    8 |

    +----+---------+------+

    4 rows in set (0.00 sec)

    mysql>

    [/img]

    11 楼

    babaoqi

    2012-10-19

    学习了

    75a3bf8974c9bd5a56863a745113d139.gif 

    38687d1a1ad71d37c86f287056834d1a.gif

    babaoqi 写道

    jinnianshilongnian 写道

    babaoqi 写道

    jinnianshilongnian 写道

    babaoqi 写道

    update table,(select max(id) as id from table) as ttab

    set table.name='new name'

    where  table.id =ttab.id

    你试过吗?

    一直这么用,你执行的时候报错了么?能把错误信息帖下吗

    你用的是哪个版本 看了下5.5支持  我用的是5.3

    5.5.23

    哦 我说呢,看了下最新文档 支持这种多表更新 看了下oracle10g的文档也是不支持

    38687d1a1ad71d37c86f287056834d1a.gif

    9 楼

    babaoqi

    2012-10-19

    jinnianshilongnian 写道

    babaoqi 写道

    jinnianshilongnian 写道

    babaoqi 写道

    update table,(select max(id) as id from table) as ttab

    set table.name='new name'

    where  table.id =ttab.id

    你试过吗?

    一直这么用,你执行的时候报错了么?能把错误信息帖下吗

    你用的是哪个版本 看了下5.5支持  我用的是5.3

    5.5.23

    babaoqi 写道

    jinnianshilongnian 写道

    babaoqi 写道

    update table,(select max(id) as id from table) as ttab

    set table.name='new name'

    where  table.id =ttab.id

    你试过吗?

    一直这么用,你执行的时候报错了么?能把错误信息帖下吗

    你用的是哪个版本 看了下5.5支持  我用的是5.3

    babaoqi 写道

    jinnianshilongnian 写道

    babaoqi 写道

    update table,(select max(id) as id from table) as ttab

    set table.name='new name'

    where  table.id =ttab.id

    你试过吗?

    一直这么用,你执行的时候报错了么?能把错误信息帖下吗

    你是用的么数据库? mysql/oracle好像都不支持这种语法吧

    6 楼

    babaoqi

    2012-10-19

    jinnianshilongnian 写道

    babaoqi 写道

    update table,(select max(id) as id from table) as ttab

    set table.name='new name'

    where  table.id =ttab.id

    你试过吗?

    一直这么用,你执行的时候报错了么?能把错误信息帖下吗

    babaoqi 写道

    update table,(select max(id) as id from table) as ttab

    set table.name='new name'

    where  table.id =ttab.id

    你试过吗?

    4 楼

    babaoqi

    2012-10-19

    update table,(select max(id) as id from table) as ttab

    set table.name='new name'

    where  table.id =ttab.id

    3 楼

    wgh596

    2012-10-18

    你的尝试2,用程序实现是一样的。

    挺不错的。

    update table set name='new name' where  id =max(select max(id) from table);

    这是mysql的限制,子查询用的表不能是update的表

    1 楼

    laogao3232

    2012-10-17

    这个需求有点儿意思。

    展开全文
  • 【mysql技巧】按某一字段分组最大(小)值所在行的数据https://blog.csdn.net/zimuxin/article/details/52230662mysql...那么猎微网将总结几种mysql查询最大值 mysql查询最小值的方法!mysql表图如下一、按name分组...
  • 本文主要向大家介绍了Oracle数据库之【Oracle】oracle取最大值和最小值的几个方法汇总,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。(1)oracle使用keep分析函数最值记录--工资sal最大的雇员...
  • (1)oracle使用keep分析函数最值记录--工资sal最大的雇员姓名及其工资,以及工资sal最少的雇员姓名及其工资selectdeptno,empno,ename,sal,max(ename) keep(dense_rank FIRST order by sal) over (partition by ...
  • 我有一张桌子:id | score | datebob | 40 | 2010-1-1bob | 70 | 2010-1-15sue | 55 | 2010-1-1sue | 80 | 2010-2-1我想查询某个用户在特定日期的得分,或者如果该用户在该日期没有得分,则返回该用户最近日期的得分。...
  • Excel表格中如何通过函数判断数据中的最大值腾讯视频/爱奇艺/优酷/外卖 充值4折起Excel是我们常用的一款数据处理软件,深受大家的欢迎,是我们学习办公的助手,有的朋友想知道怎么通过函数判断数据中的最大值,小编...
  • //过滤出年龄是20的person,想过滤出什么条件的都可以 List personList1 = personList.stream().filter(person -> person.getAge() == 20).collect(Collectors.toList()); //统计出年龄等于20的个数 long count = ...
  • 我一张普通的积分记录表中,查询出符合条件数据有3条,当然这是我针对一个用户来查询的,假如我需要获取这三条数据中的 task_correct 最大值的那一条记录,我们可以这样来写 SELECT a.user_nam
  • 不满足终止条件时,首先数值中点,对左右两部分分别递归求最大值,最后左右最大值中最大的一个返回 代码实现 package DataStructures; /** * 递归求最大值 */ public class GetMax { public static int ...
  • SQL 两个表联合查询记录中取最大值

    千次阅读 2021-01-21 16:49:52
    as ddd from 表1 where MZZYH='5' Group By ITEM_ID) a inner join 表2 b on a.ITEM_ID = 表2.ITEM_ID 能够查到需要的数据了,现在在表1中新增了字段NRUL需要在结果中查找出来,条件还是不变时间最大。...
  • and s.status in (‘已检验‘, ‘已生成报告‘)) tt 这里使用了分析函数,使用分组中的一组,进行求和 ,求最大值,最小值。 问题: 一:我这里使用了 DISTINCT去重,有没有效率更好的方式去重呢 二:分析函数不能...
  • Java中求最大值的4种方法实例代码

    千次阅读 2021-02-25 18:53:46
    前言本文主要给大家分享了关于java求最大值的4中方法,文中给出了完整的示例代码,下面话不多少了,来一起看看吧示例代码:/***@author Prannt*求最大值(或最小值)*本例以int数据类型为例,可指定其他数据类型*///...
  • 需求描述查询 table 表中在 22:00 - 23:00 之间,每一位用户最后末一次插入的数据行。表结构NameTypeLengthNot NullKeyCommentidint11[x]primary keyuser_idvarchar64[x]用户idoptionsvarchar256选项createddatetime...
  • 我正在处理一个Postgres...我需要一个查询,该查询将为我提供每个usr_id的最新live_remaining总数有个用户(与usr_id不同)time_stamp不是唯一的标识符:有时,用户事件(表中的每一行)将使用相同的time_stamp发生。t...
  • #includeusing namespace std;int main(){int a,b,c;...//输出最大if(a>b)if (c>a) cout<else cout<else if(c>b) cout<else cout<//输出最小if(aif (c>a) cout<else...
  • matlab中的最大值和最小值

    千次阅读 2021-04-18 09:03:00
    matlab中的的最大值和最小值MATLAB提供的求数据序列的最大值和最小值的函数分别为max和min,两个函数的调用格式和操作过程类似。1.向量的最大值和最小值一个向量X的最大值的函数有两种调用格式,分别是:(1) y=...
  • 根据stationIdC对数据分组,通过对每组timestamp进行比较,获取每组timestamp最大的那条记录,返回结果为Map。 Map<String, AtstationDTO> latestStations = stations.parallelStream().collect(Collectors.to...
  • mysql是指到的那一行,并不是包含最大分数的那一行 SELECT a.* ,c.* FROM tbstudent a INNER JOIN (SELECT SUBJECT,MAX(score) score FROM tbstudent GROUP BY SUBJECT)b ON a.SUBJECT=b.SUBJECT AND a.score=b....
  • 某年某月某日,老师给我们布置了一个极其笨拙的方法用来三个数中的最大值,还在最后让我们找其他方法,这就让我瞬间上了头! 第一种-使用三元运算符如名字表示的三元运算符需要三个操作数。语法为:条件表达式?...
  • hive 获取数组的最大值和最小值

    千次阅读 2021-01-11 21:28:34
    1、首先把数组打散,生成中间表YYY ...2、使用first_value获取最小值,last_value获取最大值 select uid,point_id, first_value(loc_x)over(partition by uid order by point_id) as start, las
  • 遇到一个很有趣的问题,查询数据库中的最大值 首先放一个测试数据表 如果我想找出最高的分数 SELECT max(score) score from score_test 结果毫无疑问 那我想找出每个class最高的分数 SELECT class,max(score) ...
  • 输入11个整数,计算它们的最大值和最小值. 样例输入 0 1 2 3 4 5 6 7 8 9 10 样例输出 10 0 #include int main(){ ]; ; ia[j]){ int t = a[i]; a[i] = a[j]; a[j] = t; } } } printf(],a[]);…基本概念 reduce() 方法...
  • MySQL 子查询——查询最大值

    千次阅读 2021-01-18 18:35:56
    子查询指将一个查询语句嵌套在另一个查询语句中。子查询可以在 SELECT、UPDATE 和 DELETE 语句中使用,而且可以进行多层嵌套。在实际开发时,子查询经常出现在 ...要求:查出指定范围的最大值,同时显示与之相关...
  • 具体如下: 1、简介 结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;sql 语句就是对数据库进行操作的一种...
  • 不得不说,使用Java Stream操作集合实在是太好用了,不过最近在观察生产环境错误日志时,发现偶尔会出现以下2个异常:java.lang....提取集合中的某一列(普通提取、去重)按条件过滤集合求和最大值/最小值/平...
  • Integer的最大值

    千次阅读 2021-02-12 22:20:53
    来自:https://blog.csdn.net/qq_33611068/article/details/77369050有这样一道题:编程测试,遍历 0 到 int所能表示最大的正数,将消耗的时间打印。下面是我的代码:1 int temp = 0;2 Date dt1 = newDate();3 long ...
  • JS 数组获取最大值

    2021-01-12 03:48:55
    一、一维数组var a=[1,2,3,5];...//最大值alert(Math.min.apply(null, a));//最小值二、二维数组var a=[1,2,3,[5,6],[1,4,8]];var ta=a.join(",").split(",");//转化为一维数组alert(Math.max.apply(null,ta));//...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 322,231
精华内容 128,892
关键字:

多条件求取数据最大值