求排名 mysql构建rownum字段
2015-01-11 10:03
148 查看
create table t(s number);insert into t values(90);insert into t values(50);insert into t values(20);commit;问题:给出一个数,求出这个数在这个表中的排名假如:给出100,返回1给出90,返回1给出80,返回2给出40,返回3给出10,返回4
提示:下文中的40是给出的数1 oracle数据库下select nvl(( select rn from ( select fir.*,rownum as rn from (select t.*,40 as value from t order by s desc) fir ) sec where value-s= ( select min(value-s) as cut from ( select fir.*,rownum as rn from (select t.*,40 as value from t order by s desc) fir )sec where value-s>=0 ) ),--参数一(select count(*)+1 from t) --参数二) as rank from dual
2 mysql数据库下mysql中没有oracle的rownum,所以需要自己构建一个相似于oracle的rownum字段select ifnull((select rownumfrom( select *,40 value from (select a.*,(select count(*)from t where t.s>=a.s) as rownum from t a) fir --构建类似的rownum字段) secwhere value-s=( select min(value-s) as cut from ( select *,40 value from (select a.*,(select count(*)from t where t.s>=a.s) as rownum from t a) fir --构建类似的rownum字段 ) sec where value-s>=0) ),(select count(*)+1 as s from t)) as rank
提示:下文中的40是给出的数1 oracle数据库下select nvl(( select rn from ( select fir.*,rownum as rn from (select t.*,40 as value from t order by s desc) fir ) sec where value-s= ( select min(value-s) as cut from ( select fir.*,rownum as rn from (select t.*,40 as value from t order by s desc) fir )sec where value-s>=0 ) ),--参数一(select count(*)+1 from t) --参数二) as rank from dual
2 mysql数据库下mysql中没有oracle的rownum,所以需要自己构建一个相似于oracle的rownum字段select ifnull((select rownumfrom( select *,40 value from (select a.*,(select count(*)from t where t.s>=a.s) as rownum from t a) fir --构建类似的rownum字段) secwhere value-s=( select min(value-s) as cut from ( select *,40 value from (select a.*,(select count(*)from t where t.s>=a.s) as rownum from t a) fir --构建类似的rownum字段 ) sec where value-s>=0) ),(select count(*)+1 as s from t)) as rank
相关文章推荐
- 构建安全的apache+mysql+php的web服务器
- 用PHP和MySQL构建一个数据库驱动的网站
- .NET程序员也用JAVA:使用BlazeDS,SpringFramework,MySql,Flex构建RIA应用 part 3 :Flex及As 3代码编写
- 在CentOS上构建 MySQL 数据库服务器
- Nginx+Apache+Mysql+Php+eaccelerator+Zend构建高性能的WEB服务器
- 构建 MySQL 数据库服务器
- mySQL中构建树形结构(类似oracle的树形结构)
- Ubuntu 下构建基于 mysql 管理的 pure-ftpd
- 构建基于Windows+MySQL+Apache+php+Snort的IDS
- Tomcat5.5.17+MySQL构建数据源
- Drbd+heartbeat+mysql replication来构建mysql的高可用性
- Drbd+heartbeat+mysql replication来构建mysql的高可用性
- .NET程序员也用JAVA:使用BlazeDS,SpringFramework,MySql,Flex构建RIA应用 part 2 :Java代码编写.
- Drbd+heartbeat+mysql replication来构建mysql的高可用性
- 使用PHP和MySQL构建一个Dojo Tree控件
- 构建安全的apache+mysql+php的web服务器
- MYSQL成绩排名
- Nginx+Apache+Mysql+Php+eaccelerator+Zend构建高性能的WEB服务器
- IIS+apache+MYSQL+PHP 构建全能的Web空间
- Nginx+Apache+Mysql+Php+eaccelerator+Zend构建高性能的WEB服务器