某个表TEST
ID  INT
LEVEL   INT 
NUMBER   INTid  序列号,LEVEL 级别,NUMBER 人数问题一:用一条查询语句从TEST表里查出所有的级别数以及相应的人数,例如:
级别       人数
问题二:接上,查询出人数在5包括5以上的级别以及相应人数
-------------------------------------------
脑袋一下懵懂了,没想出来,呵呵,求教了

解决方案 »

  1.   

    不知道理解对没有?1、select LEVEL 级别,sum(NUMBER) 人数 from test group by level;
    2、select LEVEL 级别,sum(NUMBER) 人数 from test group by level having sum(NUMBER)>=5;
      

  2.   


    第一个、
    select level 级别,sum(number) 人数 from test 
    group by level;第二个、
    select level 级别,sum(number) 人数 from test 
    group by level having sum(number)>=5;
      

  3.   


    select t.level,count(*) from test t group by t.level;
    select level,num from(select t.level,count(*) num from test t group by t.level) temp
    where temp.num>=5;
      

  4.   

    建议楼主看看 group by [col_name] having [condition] 的用法~
      

  5.   


    --首先问题你的字段命名有点不规范 以后运用很容易出问题 
    select level,sum(number) from tb group by level --问题二加个having sum(number)>5 就可以了 
      

  6.   

    楼上各位是不是想的太多了,这个怎么看也就是个非常简单的题目啊,个人认为应该是下面这样:
    select LEVEL,NUMBER from TEST;
    select LEVEL,NUMBER from TEST where NUMBER>=5;
      

  7.   

    第一:select level,count(level) from test
    group by level;
    第二:select level,count(level) from test
    group by level having count(level)>=5;
      

  8.   


    where的效率高于having
    having的效率高与子查询 所以这边完全可以使用having,但是不能使用where因为过滤数据是在group by之后产生的。
      

  9.   

    select level,sum(number) from test
    group by level;select level,sum(number) from test
    where level>=5
    group by level;
      

  10.   

    看一下GROUP BY和HAVING的用法就可以了,很好理解,再看下HAVING和WHERE的区别