在mysql数据库已有的表中新建一列,这一列的值为另外一已有数据的列的排名。 求高手sql如何写? 如题。在mysql数据库已有的表中新建一列,然后这一列的值为另外一已有数据的列的排名。求高手sql如何写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 新建一个表包括自增主键id把你的表按照某列排序 insert到这个表 表的自增id即是排名 不太明白ALTER TABLE `表名` ADD COLUMN 新列名 类型; UPDATE `表名` a SET 新列名=(SELECT COUNT(*) FROM (SELECT 已有列名 FROM `表名` b) tmp WHERE tmp.已有列名>=a.已有列名); 现在数据库有一表id X1 202 103 30新增加一列Yid X Y1 202 10 3 30然后每行Y值为X值在X列排序的结果即结果为:id X Y1 20 22 10 13 30 3求sql语句谢谢!!!!!! update 现在数据库有一表 a,(select b.id,count(*) as K from 现在数据库有一表 b,现在数据库有一表 c where b.X>=c.X) dset a.Y=d.Kwhere a.id=b.id UPDATE test a INNER JOIN (SELECT a.x ,COUNT(*) AS pm FROM `test` a LEFT JOIN `test` b ON a.`x`>=b.`x`GROUP BY a.`x`) cON a.`x`=c.xSET a.y=c.pm 用上面的例子尝试成功了我可以加条件么:如果X的值小于15,那么Y的值为0;还有X列的值不唯一有重复。谢谢!!!! 如果X的值小于15,那么Y的值为0SET a.y=if(a.x<15,0,c.pm)还有X列的值不唯一有重复重复怎么计算排名 如果X相同,那么插入时间早的排序在前。那就变成这样了,现在数据库有一表id X time1 20 2012-09-23 06:55:00 2 10 2012-09-23 07:45:02 3 30 2012-09-23 08:25:164 20 2012-09-24 08:25:16新增加一列 Yid X time Y1 20 2012-09-23 06:55:00 2 10 2012-09-23 07:45:02 3 30 2012-09-23 08:25:164 20 2012-09-24 08:25:16然后每行Y值为(X,time)组合排序的结果,如果X的值小于15,那么Y的值为0。(time为sysdate,这个值会唯一么?) 即结果为:id X time Y1 20 2012-09-23 06:55:00 12 10 2012-09-23 07:45:02 03 30 2012-09-23 08:25:16 34 20 2012-09-24 08:25:16 2谢谢!!! MYSQL 返回值问题 tomcat链接mysql出错 sqlite导出数据问题 在mysql中定义的列(char)不能为空,为什么还能插入空值 连接远程MYSQL数据库出错,谁知道原因? 对MYSQL进行LOAD DATA INFILE '' INTO DATABASE能否在客户端程序中处理? MYSQL触发器问题 网站间歇性变慢,贴出来show engine innodb status 命令结果,大家帮忙分析下 求解:mysql语句后面添加“;”无法执行语句 MySQL数据库远程连接执行缓慢 求一级联查询SQL 用户图片信息数据库存储该如何设计?
UPDATE `表名` a SET 新列名=
(SELECT COUNT(*)
FROM (SELECT 已有列名 FROM `表名` b) tmp
WHERE tmp.已有列名>=a.已有列名);
现在数据库有一表
id X
1 20
2 10
3 30
新增加一列Y
id X Y
1 20
2 10
3 30然后每行Y值为X值在X列排序的结果
即结果为:
id X Y
1 20 2
2 10 1
3 30 3求sql语句谢谢!!!!!!
(select b.id,count(*) as K from 现在数据库有一表 b,现在数据库有一表 c where b.X>=c.X) d
set a.Y=d.K
where a.id=b.id
SELECT a.x ,COUNT(*) AS pm FROM `test` a LEFT JOIN `test` b ON a.`x`>=b.`x`
GROUP BY a.`x`) c
ON a.`x`=c.x
SET a.y=c.pm
SET a.y=if(a.x<15,0,c.pm)还有X列的值不唯一有重复
重复怎么计算排名
如果X相同,那么插入时间早的排序在前。
那就变成这样了,现在数据库有一表
id X time
1 20 2012-09-23 06:55:00
2 10 2012-09-23 07:45:02
3 30 2012-09-23 08:25:16
4 20 2012-09-24 08:25:16
新增加一列 Y
id X time Y
1 20 2012-09-23 06:55:00
2 10 2012-09-23 07:45:02
3 30 2012-09-23 08:25:16
4 20 2012-09-24 08:25:16然后每行Y值为(X,time)组合排序的结果,如果X的值小于15,那么Y的值为0。
(time为sysdate,这个值会唯一么?)
即结果为:
id X time Y
1 20 2012-09-23 06:55:00 1
2 10 2012-09-23 07:45:02 0
3 30 2012-09-23 08:25:16 3
4 20 2012-09-24 08:25:16 2谢谢!!!