已知一个表,结构如
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语句应该怎么写,谢谢!!

解决方案 »

  1.   

     (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式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)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  2.   

    这几天有事比较忙,没上论坛了,帖子一直没有回复,不好意思那我就把问题写的详细点。
    我定义了两个表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),要的结果就是这样,不知道我数清楚没有,请各位帮帮忙,呵呵
      

  3.   

    我的数据库版本是mysql 5.1.45
      

  4.   

    补充一下,配置文件中设置rank的个数是确定的,如rank1,rank2,...,rank10,但是各个rank的值在配置文件中是可以配置的
      

  5.   

    这样,你先生成结果,然后用MYSQL 导入。
      

  6.   


    因为我的配置文件中设为rank1=0,rank2=50,rank3=100,rank4=200.
    这样只有0-50,50-100,100-200三个段了,我是通过配置文件来确定段的,具体的数额可以自己在配置文件中填写
      

  7.   


    这个我用shell已经实现了,现在你可以把这几个rank变量当做常数来用