如题。在mysql数据库已有的表中新建一列,然后这一列的值为另外一已有数据的列的排名。
求高手sql如何写?
求高手sql如何写?
解决方案 »
- mysql C api是否有 在结果中,用字段名key查到value的api?
- 请教如何合并多条SQL语句为一条语句?
- 几台slave上的 Slave_IO_Running 都变为No
- 帮忙解释一下MySQL的数据表类型 ISAM, MyISAM, HEAP, BDB, InnoDB......
- Mysql 的远程调用问题,急啊!
- 一个在mySql 中找出最大值并返回当前记录!!
- MySQL如何利用API备份数据库?
- MYSQL 时间不正常 高手看一下哦
- mysql 1064
- 执行mysqld_safe --skip-grant-tables &后 出错
- 求一级联查询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谢谢!!!