对于给定的表,给出每行Oracle SQL的计数

时间:2019-03-19 16:32:36

标签: sql oracle

如果我有一个这样的表:

ID  | Name   | Payment
----------------------
101 | Victor | 10
103 | Andy   | 13
134 | Mai    | 2
156 | Chris  | 68
179 | Ryan   | 43

我想要一个查询,给出以下内容

[Count] | ID  | Name   | Payment
----------------------
1       | 101 | Victor | 10
2       | 103 | Andy   | 13
3       | 134 | Mai    | 2
4       | 156 | Chris  | 68
5       | 179 | Ryan   | 43

因此它给出了每一行的数量,但是我不知道该怎么做(是SQL的初学者)。有提示吗?

3 个答案:

答案 0 :(得分:2)

只需使用row_number()

select row_number() over (order by id) as "Count",
       t.*
from t
order by "Count";

您应该同时拥有两个order by,以确保行上的编号正确并且结果集中的行顺序正确。

答案 1 :(得分:0)

使用dense_rank()

select *,dense_rank() over(order by id) from t

或者您可以使用count()

  select *,count(*) over(order by id) from t

答案 2 :(得分:0)

简单

table clients

Login | message_to | sender
---------------------------
David | Hello      | Kevin
Mike  | For you    | Sea