group by不能跟where一起用吗?

那我怎么设立条件呢?having好像只能用于函数啊

可以。注意:where肯定在group by 之前。

一,group by 字句也和where条件语句结合在一起使用。当结合在一起时,where在前,group by 在后。即先对select xx from xx的记录集合用where进行筛选,然后再使用group by 对筛选后的结果进行分组 使用having字句对分组后的结果进行筛选。

二,需要注意having和where的用法区别:

    having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)。

    where肯定在group by 之前。

3.where后的条件表达式里不允许使用聚合函数,而having可以。

三,当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序是:

1.执行where xx对全表数据做筛选,返回第1个结果集。

2.针对第1个结果集使用group by分组,返回第2个结果集。

3.针对第2个结果集中的每1组数据执行select xx,有几组就执行几次,返回第3个结果集。

4.针对第3个结集执行having xx进行筛选,返回第4个结果集。

5.针对第4个结果集排序。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
可以一起用的
where 是对数据集进行筛选
group by 是对结果集进行聚集

就是说where筛选后,才轮到group by上场
例子:
select a.class,count(1) as cou
from tab1 a inner join tab2 b on a.id = b.id
where a.type = 'U'
group by a.class本回答被提问者采纳
第2个回答  2012-08-01
你看下参考资料里的sql 执行顺序,你就知道为什么where条件不能跟聚集函数了。

group by 和where可以一起用。
下面是个例子。
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value本回答被网友采纳
第3个回答  2012-08-01
先条件再group by,where在group by 之前,having是对分组过滤
比如 select a,sum(b) From table where a=3 group by a having=2
where 一定要放在group by之前
第4个回答  2012-08-01
selece 列 from 表 where 条件 group by 要排序的值

group by不能跟where一起用吗?
可以。注意:where肯定在group by 之前。一,group by 字句也和where条件语句结合在一起使用。当结合在一起时,where在前,group by 在后。即先对select xx from xx的记录集合用where进行筛选,然后再使用group by 对筛选后的结果进行分组 使用having字句对分组后的结果进行筛选。二,需要注意having和w...

where可以放在group by之后吗
可以一起用的 where 是对数据集进行筛选 group by 是对结果集进行聚集 就是说where筛选后,才轮到group by上场 例子:select a.class,count(1) as cou from tab1 a inner join tab2 b on a.id = b.id where a.type = 'U'group by a.class ...

group by可以加where么
可以一起用的 where 是对数据集进行筛选 group by 是对结果集进行聚集 就是说where筛选后,才轮到group by上场 例子:select a.class,count(1) as cou from tab1 a inner join tab2 b on a.id = b.id where a.type = 'U'group by a.class ...

面试突击62:group by 有哪些注意事项?
因为 where 的执行在 group by 之前。而 having 可以在 group by 后单独使用,甚至在 MySQL 5.7.5 版本以后,它和 group by 都允许使用 select 中的别名进行查询,这是由于 MySQL 对其执行顺序进行了扩展。

SQL中where和group by可以连用吗?having算是对检索条件的补充吗?
where 可以和 group by连用 但效果和having是不同的 。一、group by all语法解析:如果使用 ALL 关键字,那么查询结果将包括由 GROUP BY 子句产生的所有组,即使某些组没有符合搜索条件的行。没有 ALL 关键字,包含 GROUP BY 子句的 SELECT 语句将不显示没有符合条件的行的组。select DepartmentID,...

mysql中group by 后可以用where吗
不能的,group by表示要排序了,后面接的应该是属性名,where后面表示提出条件之类的,如果对排序需要有条件筛选,应该在属性名后接 having +条件 。

SQL中where和group by可以连用吗?having算是对检索条件的补充吗?
count()统计函数,是不可以用在where条件语句中的,在聚合函数存在的情况下使用,使用group by 之后条件语句使用having

where子句和having子句的区别是什么?
1、where不能放在group by后面。2、having是跟group by连在一起用的,放在group by 后面,此时的作用相当于where。3、where后面的条件中不能有聚集函数,比如SUM0.AVG等,而HAVING可以。where子句:Where子句: Where子句仅仅用于从from子句中返回的值,from子句返回的每一行数据都会用where子句中的条件...

1. SELECT 语句中,HAVING子句、WHERE子句用法上有什么不同?_百度知 ...
having 主要对组进行的条件 主要是用在group by之后的条件 where对表 视图 等进行的条件

group by、where、having用法及顺序
1. where子句:非必须,但它针对的是每个单独的记录进行过滤。它的作用类似于在数据检索之前设定预选条件。2. group by子句:紧跟在where之后,对数据进行分组,通常用于聚合函数,如计数、求和等。这里的分组依据是select子句中除聚合函数外的其他列。3. having子句:在group by之后,对分组后的记录再次...

相似回答