如果我有一个这样的表:
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的初学者)。有提示吗?
答案 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