`
jccjtt18z
  • 浏览: 3662 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

sum(),count()作为条件时

阅读更多

在开发时,我们经常会遇到以“累计(count)”或是“累加(sum)”为条件的查询。比如user_num表:

id user num
1 a 3
2 b 4
3 c 5
4 d 7

  例1:查询出现过2次的user。
  往往初学者会错误地认为在where 语句里直接使用count()算法,很显然这个想法是错误的,count()方法并不能被用在where子句中,为了解决问题,我们可以在group by子句后面使用HAVING来做条件限制。
  错误做法:select * from user_num where count(user)>=2 group by user;
  正确做法:select * from user_num group by user HAVING count(user)>=2 ;
  解释说明:HAVING 与 WHERE 类似,可用来决定选择哪些记录。HAVING 子句在SELECT语句中指定,显示哪些已用 GROUP BY 子句分组的记录。在GROUP BY组合了记录后, HAVING会显示 GROUP BY 子句分组的任何符合 HAVING 子句的记录。
  例2:查询单一用户的num总和大于10的用户。
  有前面的经验,把sum()方法写在HAVING子句中。
  正确做法:select * from user_num group by user HAVING sum(num)>10 ;
  注意:一个HAVING子句最多只能包含40个表达式,HAVING子句的表达式之间可以用AND和OR分割。

0
0
分享到:
评论

相关推荐

    sql中count或sum为条件的查询示例(sql查询count)

    总结一下,SQL中使用`COUNT()`和`SUM()`作为查询条件时,应正确使用`GROUP BY`和`HAVING`子句。`WHERE`子句用于筛选原始行,而`HAVING`子句用于筛选聚合后的结果。理解这一区分对于编写有效的SQL查询至关重要,特别...

    mysql查询根据列按条件统计总数

    (SELECT '合计', SUM(cnt) FROM (SELECT COUNT(*) AS cnt FROM t1) AS sub); ``` 这个例子展示了如何将每个`列1`的统计结果与一个汇总统计结果合并起来。 ##### 5. 子查询 - 内嵌查询 子查询是指在一个查询语句...

    LINQ_to_SQL.zip_SUM_linq

    `GroupBy`用于将数据分组,`Having`则作为分组后的条件过滤: ```csharp var groups = from user in Users group user by user.Country into g where g.Count() > 10 // 至少有10个用户来自同一国家 select g....

    「Python循环结构」使用while循环实现求和和阶乘.pdf

    1. 初始化循环变量`count`为1,作为计数器,记录当前读取到的是第几个数字。 2. 定义求和变量`sum`,初始值设为0,用于存储累加后的总和。 3. 使用while循环,当`count`小于或等于5时,循环继续。在循环内部,通过`...

    mySQL count多个表的数据实例详解

    然而,如果需要统计所有用户的数据,而不是特定用户,我们可以添加GROUP BY子句,将每个用户ID作为分组条件,同时在外部再进行一次GROUP BY操作,以获得所有用户的统计结果: ```sql SELECT uid, SUM(wrzm) wrzm, ...

    MySQL对window函数执行sum函数可能出现的一个Bug

    在这个查询中,使用了多个窗口函数,如`first_value`、`last_value`、`sum`、`max`、`min`、`count`、`row_number`、`rank`和`dense_rank`,其中`sum`函数在名为`w`的窗口上进行操作,该窗口按课程ID分组(`...

    经典的SQL查询语句,将内容作为字段查询

    6. 分组和聚合函数:GROUP BY语句用于将数据按指定字段进行分组,而聚合函数(如COUNT、SUM、AVG、MAX和MIN)则可以对每个分组进行计算。例如,`GROUP BY department`可以按部门分组,`COUNT(*)`可以计算每个部门的...

    sql数据库 转 Access SQL语句改写之 Case When Then When Then Else End

    - `SWITCH(expression1, value1, expression2, value2, ..., else_value)`:这个函数接受一系列的表达式和对应的值作为参数,同时还可以指定一个默认值(当所有表达式都不成立时返回)。它会依次检查每个表达式,...

    程序设计-简单算法举例.pptx

    在本例中,sum作为累加器,用来存储每次迭代的和,而count作为计数器,记录当前处理到的数。一个通用的算法表示方法可以是: 1. 初始化sum为0,count为1。 2. 将sum更新为sum加上count。 3. 增加count的值。 4. ...

    sql/having用法

    在这个例子中,我们首先在`HAVING`子句中使用了一个子查询来获取订单总数的平均值,然后用它来作为筛选条件。 总结来说,`HAVING`子句是SQL中一个强大的工具,它可以让我们对分组后的数据进行精确的筛选。通过使用`...

    Python 教程 chapter8PPT学习教案.pptx

    `while`循环在满足特定条件时持续执行,其语法如下: ```python while <condition>: ``` 当`<condition>`为真时,循环体内的代码会被执行,直到条件变为假。`while`循环的一个特点是它的后测试(post-test),即先...

    Laravel 对某一列进行筛选然后求和sum()的例子

    这将会生成一条SQL语句,对`products`表中状态为1的记录的`profit`和`order_count`字段进行求和,并将结果作为数组返回。 需要注意的是,`first()`方法用于获取查询结果的第一条记录,这里结合`DB::raw()`使用,是...

    通达信指标公式源码 财务特破选股 源码.doc

    通达信指标公式源码财务特破选股源码解析 通达信指标公式源码财务特破选股源码是指使用通达信指标公式对股票进行财务特性分析和突破选...突破买点是指股票的突破买点信号,是指股票同时满足多个突破条件时的买点信号。

    do while??????? ?? ??? ??.rar_C++_Meaning

    在C++编程语言中,`do while`循环是一种特殊的循环结构,它...在处理"两个给定值"时,这些值可能作为循环控制的一部分,比如计数器、比较值或参与计算的变量。了解它们的含义和交互对于正确编写和理解C++程序至关重要。

    ORACLE SQL 优化

    当在 WHERE 子句中使用了 ROWNUM 的限定条件时,比如: ```sql SELECT id, rownum FROM employee WHERE rownum ; ``` Oracle 优化器将使用 `COUNT STOPKEY` 操作。这种操作会在 ROWNUM 达到指定值(本例中的 10)时...

    案例学习:如何让你的SQL运行得更快

    - 在设计连接条件时,应确保连接操作基于有效的索引。 - 尽量使用过滤条件来限制连接范围,避免不必要的全表扫描。 - 考虑使用索引覆盖等技术进一步优化连接操作。 通过以上案例的学习,我们可以看到,合理的索引...

    数据库T_SQL高级查询6.ppt

    子查询则可以用于获取某个查询结果,并将其作为另一个查询的条件,例如:SELECT * FROM titles WHERE price > (SELECT AVG(price) FROM titles)。 五、课堂练习 本章节还提供了多个课堂练习题,旨在帮助读者更好地...

    SQL查询数据库中符合条件的记录的总数

    - 当你指定一个列名作为COUNT()函数的参数时,它将返回该列中非NULL值的数量。 ```sql SELECT COUNT(列名) FROM table; ``` 如果`列名`包含NULL值,它们将不会被计入计数。 3. **带有WHERE子句的COUNT()**: ...

Global site tag (gtag.js) - Google Analytics