SQL中不通过max函数求最大值

拈花ヽ惹草 提交于 2020-02-04 20:03:14

今天看了下《数据库系统概念》中的关系模型,里面一节的关系运算让我想到了SQL语句中不用max函数

便可以求得某列的最大值。现假设有表如下所示:

 

 1 create table MY_MAX
 2 (
 3     id int,
 4     scores int
 5 )
 6 insert into MY_MAX values(1,1);
 7 insert into MY_MAX values(2,2);
 8 insert into MY_MAX values(3,3);
 9 insert into MY_MAX values(4,4);
10 insert into MY_MAX values(5,5);

 

 

我们准备在列scores上求最大值。

首先求出所有的非最大值,然后利用集合的差运算即可。

计算所有的非最大值,要利用表自身的笛卡尔积.

SQL语句如下:

 

1 select scores from MY_MAX where scores not in
2 (select A.scores from MY_MAX A,MY_MAX B where A.scores<B.scores)

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!