再发表的格式发一下:
        ID      keyword         searched   grade
1 net1     2
2 new1     2
3 test     16
4 net1new1test   3
5 fdfdfd 2
6 牛仔 男装牛仔 24
7 牛仔,男装牛仔 2
8 mens      1
9 jeans      3
10 fdsf      2
11 fdsfs      2
12 牛 马仔      3
14 男装,牛仔      1
17 sss,tessss  6
18 test see sss  5
22 windows      2
23 2003      2
24 windows 2003  2
25 test test       2
26 牛仔,男装牛仔  8

解决方案 »

  1.   

    你的等级怎么分的??searched多少到多少为一个等级??
      

  2.   

    就是将所有的记录条数平均分成五份(五个级别)就行了,再根据被搜索的次数,由高到低,依次填上每个关键词所属的级别(就是grade后面填上"1级").
      

  3.   

    回复人: morningstudy(morning) ( ) 信誉:100  2005-03-30 19:58:00  得分: 0  
     
     
       就是将所有的记录条数平均分成五份(五个级别)就行了,再根据被搜索的次数,由高到低,依次填上每个关键词所属的级别(就是grade后面填上"1级").
      
     
    ----------------------------------------你这个分组不科学啊,平均分成5份,你有很多相同的searched,难道要分到两个组里吗??像searched为2的就有10个了。
      

  4.   

    我觉得你可以这样分。searched为几次到几次为一个等级。将你所有可能的次数,分到5个不同的等级内。像你所给出的数据,你就可以这么分
    1-5
    6-10
    11-15
    16-20
    21-25
      

  5.   

    paoluo:说得我也认为很有道理,但我的SQL语句怎么写呢?能不能进步讲一下.
      

  6.   

    因为"searched"的值是不断变化的,可以根据最大值和最小值来确定,但能告诉我SQL怎么写么?
      

  7.   

    这样吧,如果你的searched变得较大的话,你可以将SQL改下,重新Update一次。是不是按照我说的那样分等级,是的话,我就帮你写一下。
      

  8.   

    回 paoluo:可以就按你那样分.把代码写给我看一下,多谢!
      

  9.   

    回 jerry_yuan(jerry):用触发器怎么样做,能具体讲一下么?
      

  10.   


    --建立测试环境
    Create table TEST
    (ID Int,
    keyword Nvarchar(50),
    searched Int,
    Grade Int
    )
    GO
    --插入数据
    Insert TEST Values(1,N'net1',2,Null)
    Insert TEST Values(2,N'new1',2,Null)
    Insert TEST Values(3,N'test',16,Null)
    Insert TEST Values(4,N'net1new1test',3,Null)
    Insert TEST Values(5,N'fdfdfd',2,Null)
    Insert TEST Values(6,N'牛仔 男装牛仔',24,Null)
    Insert TEST Values(7,N'牛仔,男装牛仔',2,Null)
    Insert TEST Values(8,N'mens',1,Null)
    Insert TEST Values(9,N'jeans',3,Null)
    Insert TEST Values(10,N'fdsf',2,Null)
    Insert TEST Values(11,N'fdsfs',2,Null)
    Insert TEST Values(12,N'牛 马仔',3,Null)
    Insert TEST Values(14,N'男装,牛仔',1,Null)
    Insert TEST Values(17,N'sss,tessss',6,Null)
    Insert TEST Values(18,N'test see sss',5,Null)
    Insert TEST Values(22,N'windows',2,Null)
    Insert TEST Values(23,N'2003',2,Null)
    Insert TEST Values(24,N'windows 2003',2,Null)
    Insert TEST Values(25,N'test test',2,Null)
    Insert TEST Values(26,N'牛仔,男装牛仔',8,Null)
    GO
    --测试
    Select * from TESTUpdate TEST Set Grade=(Case When searched>=1 And searched<=5 Then 1 
    When searched>=6 And searched<=10 Then 2 
    When searched>=11 And searched<=15 Then 3 
    When searched>=16 And searched<=20 Then 4 
    When searched>=21 And searched<=25 Then 5 End ) Select * from TEST
    --删除测试环境
    DROP table TEST
      

  11.   

    回复人: morningstudy(morning) ( ) 信誉:100  2005-03-30 20:29:00  得分: 0  
     
     
       回 jerry_yuan(jerry):用触发器怎么样做,能具体讲一下么?
      
     
    ----------------------------------------------------------------------------
    触发器的道理和这个类似。在表里写一个Update的触发器,如果是更新searched这个字段,就判断这个次数在哪个区间,并更新
    Grade的值。