select id1 as 'Name',count(id1) as 'count' from table1
从数据库取得的数据形式如下:
Name    count
电影-1    10
电影-2    20
电影-3    30
...      ...
...      ...
...      ...
体育-1    10
体育-2    20
体育-3    30
...      ... 
...      ...
...      ...
游戏1     10
游戏2     20
游戏3     30
...
现在想得到的数据形式是这样的:
Name  count
电影    60
体育    60
游戏    60
Sql语句该怎么写啊!!!求大侠们帮忙,俺脑袋笨,弄了半天弄不出来......

解决方案 »

  1.   

    SELECT
        Name,SUM(count) AS count
    FROM 
    (SELECT
        id1 as Name,
        count(id1) as count
     FROM table)A
    GROUP BY Name
      

  2.   


    select left(Name,2) as Name,sum(count)
    from 表
    group by left(Name,2)
      

  3.   

    这样?
    SELECT 
        left(Name,2) as name,SUM(count) as count AS count 
    FROM  
    (SELECT 
        id1 as Name, 
        count(id1) as count 
     FROM table)A 
    GROUP BY Name
      

  4.   

    select left(Name,2),sum(count) from
    group by left(Name,2)
      

  5.   

    select left(id1,2) as name ,sum(count) as count
    from table1 
    group by Name
      

  6.   

    Name字段的长度是不确定的,所以截取字符串是无法办到的
      

  7.   

    我看错,SQLSERVER里截取中文字符不好处理,如果确定字符长度或者有规则,可以用字符串函数截取
      

  8.   

    那这个就没有办法了。。name后面的-1,1都是咋来的?
    楼主说说。不会表里面的数据都是“电影-1”这之类的数据吧?
      

  9.   

    表里的数据大概这样的:
    Name       count
    武林外传-1   10
    武林外传-2   10
    武林外传-3   10
    武林外传-4   10
    ...
    ...
    ...倚天屠龙记-1  20
    倚天屠龙记-2  20
    倚天屠龙记-3  20
    倚天屠龙记-4  20
    倚天屠龙记-5  20
    倚天屠龙记-6  20
    ...
      

  10.   

    如果楼主确定name 字段里面都含有'-',并且是取'-'前面的字符
    可以这样SELECT 
       substring(name,1,charindex('-',name)-1)  as name,SUM(count) as count AS count 
    FROM  
    (SELECT 
        id1 as Name, 
        count(id1) as count 
     FROM table)A 
    GROUP BY Name
      

  11.   

    select left(Name,charindex('-',Name)-1),sum(count) from 
    group by left(Name,charindex('-',Name)-1)
      

  12.   

    welove1983兄的方案还是目前可用的
    顶!!!!!