【问题标题】:Difference between HAVING and WHERE [duplicate]HAVING和WHERE之间的区别[重复]
【发布时间】:2013-11-25 23:04:54
【问题描述】:

我有这张桌子,

CREATE TABLE Person 
    (
     id int auto_increment primary key, 
     name varchar(20), 
     Age varchar(30)
    );

INSERT INTO Person
(name, Age)
VALUES
('Ganesan', '23'),
('Prasanna', '30'),
('Karthikeyan', '27'),
('RParthiban', '33');

这个查询:

select Name, Age from Person HAVING Age > 30;

select Name, Age from Person WHERE Age > 30;

两个查询产生相同的输出:

NAME    AGE
RParthiban  33

为什么?使用 HavingWhere 有什么区别或意义?

我相信一定有。每个都有什么例子吗?

谢谢。

【问题讨论】:

  • 你先阅读文档了吗?
  • @SonerGönül 既然可以在 Stack Overflow 上输入问题,为什么还要阅读文档?
  • @ta.speot.is 搜索它可能需要 30 秒 :)

标签: mysql database select where


【解决方案1】:

HAVING 子句等效于组或聚合的 WHERE 子句。

http://technet.microsoft.com/en-us/library/ms180199.aspx

语法是SELECT ... FROM ... GROUP BY ... HAVING ... ORDER BY

例如

SELECT ID, SUM(whatever) AS [Total]
FROM table
GROUP BY ID
HAVING SUM(whatever) > 100000.00
ORDER BY ID

【讨论】:

    【解决方案2】:

    如果你搜索这个问题,你会得到答案。这是其中之一

    HAVING 只能与 SELECT 语句一起使用。 HAVING 通常用于 GROUP BY 子句。当不使用 GROUP BY 时,HAVING 的行为类似于 WHERE 子句。

    Reference

    【讨论】:

      【解决方案3】:

      WHERE用于根据条件过滤查询结果。

      HAVING 用于对聚合函数的结果应用过滤器。在没有聚合函数的情况下,它的功能与 WHERE 相同。

      【讨论】:

        猜你喜欢
        • 2017-10-07
        • 1970-01-01
        • 1970-01-01
        • 2019-04-29
        • 2012-03-16
        • 2014-05-17
        • 2010-09-22
        • 2014-08-16
        • 2011-04-08
        相关资源
        最近更新 更多