某个表TEST
ID INT
LEVEL INT
NUMBER INTid 序列号,LEVEL 级别,NUMBER 人数问题一:用一条查询语句从TEST表里查出所有的级别数以及相应的人数,例如:
级别 人数
问题二:接上,查询出人数在5包括5以上的级别以及相应人数
-------------------------------------------
脑袋一下懵懂了,没想出来,呵呵,求教了
ID INT
LEVEL INT
NUMBER INTid 序列号,LEVEL 级别,NUMBER 人数问题一:用一条查询语句从TEST表里查出所有的级别数以及相应的人数,例如:
级别 人数
问题二:接上,查询出人数在5包括5以上的级别以及相应人数
-------------------------------------------
脑袋一下懵懂了,没想出来,呵呵,求教了
2、select LEVEL 级别,sum(NUMBER) 人数 from test group by level having sum(NUMBER)>=5;
第一个、
select level 级别,sum(number) 人数 from test
group by level;第二个、
select level 级别,sum(number) 人数 from test
group by level having sum(number)>=5;
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;
--首先问题你的字段命名有点不规范 以后运用很容易出问题
select level,sum(number) from tb group by level --问题二加个having sum(number)>5 就可以了
select LEVEL,NUMBER from TEST;
select LEVEL,NUMBER from TEST where NUMBER>=5;
group by level;
第二:select level,count(level) from test
group by level having count(level)>=5;
where的效率高于having
having的效率高与子查询 所以这边完全可以使用having,但是不能使用where因为过滤数据是在group by之后产生的。
group by level;select level,sum(number) from test
where level>=5
group by level;