已知一个表,结构如
create table A
(
user_id INT(10) PRIMARY KEY, #用户id
money INT(10) NOT NULL #交易金额
);现在我令建一个表
create table B
(
user_id INT(10) PRIMARY KEY,
moneyrank VARCHAR(15) NOT NULL, #金额段,例如0-20元,20-50元等等
count INT(10) NOT NULL #次数
);现在我想把A中的数据进行统计,插入B中,并且记录各个金额段出现的次数,其中B的各个金额段做成从配置文件中读取的(Linux环境),这样的sql语句应该怎么写,谢谢!!
create table A
(
user_id INT(10) PRIMARY KEY, #用户id
money INT(10) NOT NULL #交易金额
);现在我令建一个表
create table B
(
user_id INT(10) PRIMARY KEY,
moneyrank VARCHAR(15) NOT NULL, #金额段,例如0-20元,20-50元等等
count INT(10) NOT NULL #次数
);现在我想把A中的数据进行统计,插入B中,并且记录各个金额段出现的次数,其中B的各个金额段做成从配置文件中读取的(Linux环境),这样的sql语句应该怎么写,谢谢!!
解决方案 »
- Mysql的查询问题
- 删除有相同one_id和other_id的记录,只剩下最新的一条
- 用sqlyog导入数据乱码,百度了些方法如下,也不行
- 1000万级数据,mysql能胜任否?
- 查询id="100"的时候,不要查出id="1000";"1001"的数据。。。。[绝对匹配]
- 一个初学者的小问题,不过很急用
- mysql插入150条简单数据竟用了6秒,附统计分析
- Tomcat部署的网站连接不上MySQL
- 两表合并sql求助。
- sqlerror1215
- php向mysql插入语句是因为多了 ‘ 出错,求解决方法
- mysql怎么实现oracle这种不等待加锁的问题select... for update no wait的效果?
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
我定义了两个表create table A
(
user_id INT(10) PRIMARY KEY, #用户id
money INT(10) NOT NULL #交易金额
);create table B
(
user_id INT(10) PRIMARY KEY,
moneyrank VARCHAR(15) NOT NULL, #金额段,例如0-20元,20-50元等等
count INT(10) NOT NULL #次数
);另外我从配置文件中读取的变量为rank1,rank2,....假设rank1=0,rank2=50,rank3=100,rank4=200.
表A中的数据为(1,20),(2,157),(1,44),(1,120),(4,77),(1,45),(2,190)
那么我想得到的sql语句的功能为填写表B,把A中的数据进行统计,插入B中,并且记录各个金额段出现的次数
表B填写后的结果为(1,“0-50”, 3)#用户1在0-50金额段出现3次
(1,“50-100”,0),(1,“100-200”,1),
(2,“0-50”, 0),(2,“50-100”,0),(2,“100-200”,2),
(4,“0-50”, 0),(4,“50-100”,1),(4,“100-200”,0),要的结果就是这样,不知道我数清楚没有,请各位帮帮忙,呵呵
因为我的配置文件中设为rank1=0,rank2=50,rank3=100,rank4=200.
这样只有0-50,50-100,100-200三个段了,我是通过配置文件来确定段的,具体的数额可以自己在配置文件中填写
这个我用shell已经实现了,现在你可以把这几个rank变量当做常数来用