avatar
数据库问题求解# Database - 数据库
z*y
1
要用SQL语言实现rank的功能,但不允许使用rank函数。
比如一个table
a
------
10.2
11.5
9.8
6.5
输出 -------
1 6.5
2 9.8
3 10.2
4 11.5
thanks.
avatar
a*p
2
sort by?

【在 z*y 的大作中提到】
: 要用SQL语言实现rank的功能,但不允许使用rank函数。
: 比如一个table
: a
: ------
: 10.2
: 11.5
: 9.8
: 6.5
: 输出 -------
: 1 6.5

avatar
z*y
3

没那么简单,输出的table必须包含两列。

【在 a*p 的大作中提到】
: sort by?
avatar
a*p
4
标准SQL里面好像没有这种函数吧?
order by以后任何一个编程语言稍微一搞不就行了。SQL语句太底层了。
一定要的话可能可以用sql子查询加where限制加count()函数
手头的mysql没有子查询啊,ft

【在 z*y 的大作中提到】
:
: 没那么简单,输出的table必须包含两列。

avatar
j*y
5
oracle:
select rownum, a from table XXX order by a

【在 z*y 的大作中提到】
: 要用SQL语言实现rank的功能,但不允许使用rank函数。
: 比如一个table
: a
: ------
: 10.2
: 11.5
: 9.8
: 6.5
: 输出 -------
: 1 6.5

avatar
a*o
6
rownum does not work with order by, it is the internal row number
try sequence.
but that is not standard sql.
and if it is not standard sql, there are many ways to do this.

【在 j***y 的大作中提到】
: oracle:
: select rownum, a from table XXX order by a

avatar
b*e
7
what's the point of questions like these??? off the top of my head
i know of no standard (or non-standard) way of doing this.. but even
if there is one .. what does one gain by knowing it??? in a real
world scenario there can be 1000 ways of getting this result..

【在 a****o 的大作中提到】
: rownum does not work with order by, it is the internal row number
: try sequence.
: but that is not standard sql.
: and if it is not standard sql, there are many ways to do this.

avatar
x*u
8
SELECT COUNT(A.a) b, A.a a FROM XXX A, XXX B
WHERE A.a >= B.a
GROUP BY A.a
ORDER BY b;

【在 z*y 的大作中提到】
: 要用SQL语言实现rank的功能,但不允许使用rank函数。
: 比如一个table
: a
: ------
: 10.2
: 11.5
: 9.8
: 6.5
: 输出 -------
: 1 6.5

avatar
x*u
9
刚刚在座机上装了个ORACLE 8.0.5,然后亲自验证了一把,准确无误,沾沾自喜,宝刀不
老啊。

【在 x***u 的大作中提到】
: SELECT COUNT(A.a) b, A.a a FROM XXX A, XXX B
: WHERE A.a >= B.a
: GROUP BY A.a
: ORDER BY b;

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。