求一个SQL:分区排名 - MS-SQL Server / 基础类
假如我有数据
Reguon User_name Amount
东区 张三 6834.4
东区 张果 5000
东区 张曼玉 2000
北区 李玉 1250
北区 李四 1505.9
北区 王五 572.3
南区 钱一 3417.2
怎么用SQL实现分区排序
Reguon User_name Amount Sequence
东区 张三 6834.4 1
东区 张果 5000 2
东区 张曼玉 2000 3
北区 李玉 12500 1
北区 李四 1505.9 2
北区 王五 572.3 3
南区 钱一 3417.2 1
谢谢
select Reguon User_name Amount,Sequence=row_number(partition by Reguon order by Amount desc) from tb
SQL code:
select *,
Sequence=(select count(1)+1 from tb where Reguon=t.Reguon and Amount>t.Amount)
from tb t
SQL code:
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([Reguon] varchar(4),[User_name] varchar(6),[Amount] numeric(5,1))
insert [tb]
select '东区','张三',6834.4 union all
select '东区','张果',5000 union all
select '东区','张曼玉',2000 union all
select '北区','李玉',1250 union all
select '北区','李四',1505.9 union all
select '北区','王五',572.3 union all
select '南区','钱一',3417.2
select *,
Sequence=(select count(1)+1 from tb where Reguon=t.Reguon and Amount>t.Amount)
from tb t
/**
Reguon User_name Amount
相关问答:
可能因为工作的原因 接触数据库这块比较少,之前都是做程序这块,数据库这块都有专门的人来做 分工都很明细 所以对数据库这一块完全不了解。前段时间 去面试了几家公司 几乎都是在数据库这块挂掉的 连个简单的SQ ......
今天做了一个存储过程 环境是SQL2000数据库
大致如下
建立临时表
定义员工游标
循环员工(属于1个公司)
......
protected void btnLogin_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Server = (local);user id = sa;pwd = 1;database = Login");
&nb ......
sqlserver2005 建立的数据库,与手持pda传输数据,最近突然出现无法传递数据的问题,pda端提示的错误时outofmemoryexception,但是pda上面的容量没有问题,
sqlserver的日子上的错误如下:
日期 2010-1-25 14:45: ......
我想查询出每天数据的最大的一个值。表的格式如下
表名: hisdata
字段 编号 值 状态 时间
Id value state dattime
101 32.3 0 ......