我要对某个表进行查询,同时要对某个字段出现的次数进行统计:
表:
id name money
1 jack 3000
2 tom 5000
3 mike 3100
4 jack 3000
5 jack 5000
6 jack 3000
5 qack 5000
我希望的结果如下(以money字段为计数基础):
id name money time
1 jack 3000 1
2 tom 5000 1
3 mike 3100 1
4 jack 3000 2
5 jack 5000 2
6 jack 3000 2
5 qack 5000 3注:表中有几千条记录,要保证查询速度不受影响,各位有什么好建议:
表:
id name money
1 jack 3000
2 tom 5000
3 mike 3100
4 jack 3000
5 jack 5000
6 jack 3000
5 qack 5000
我希望的结果如下(以money字段为计数基础):
id name money time
1 jack 3000 1
2 tom 5000 1
3 mike 3100 1
4 jack 3000 2
5 jack 5000 2
6 jack 3000 2
5 qack 5000 3注:表中有几千条记录,要保证查询速度不受影响,各位有什么好建议:
解决方案 »
- java全排列
- hibernate 数据提交问题,请指教,分不够就加!!!
- 类和对象的关系
- 给一个中文字符串 utf8编码后的 byte[] ,使用io流转成gbk编码的byte[],怎么弄
- 求一个把把server端的resultSet传到client端显示到JTable的例子。
- 如果要用java对文本文件中的数据按照字段读取并存入数据库,应该怎么做?
- 在applet中怎样能够设置把图片设为背景啊
- 运行后打字不能发送
- 如何让Java同时使用两个版本的JDBC
- Java ssl连接异常, Remote host closed connection during handshake
- 一个替换问题,在线等,解决就给分!!!!多谢了!!
- 急需帮助:请问java.net.SocketException: Too many open files,一般是什么情况引起的,应该什么解决!!!!
2.
select a.name , a.money , b.times from
(select name , money
FROM table1
) a,
(SELECT money,count(money) as times
FROM table1
group by money) b
where a.money = b.money
id name money time
1 jack 3000 1
2 tom 5000 1
3 mike 3100 1
4 jack 3000 2
5 jack 5000 2
6 jack 3000 2
7 qack 5000 3
以money字段为计数基础,而不是以name为基础
6 jack 3000 后面是3
select name, moneys,
(select count(id) from table1 where moneys=a.moneys and id<=a.id) as counts
from table1 a
2.如果id不是自增长字段,则需要创建有自增长字段的临时表:
select identity(int,1,1) as id,* into #temp
from tablename
select name, moneys,
(select count(id) from #temp where moneys=a.moneys and id<=a.id) as counts
from #temp a
drop table #temp
from (select count(id) as count from table a, table b where a.money=b.money)
group by name,money 没试过,看看行否