having筛选结果集

题目要求:让你输出有两科及其以上挂科(60分及格)的学生的名单?

name    subject    score

错误的做法:

mysql> select name, count(scoure<60) as gk from student group by name having gk >= 2;

为什么会是错的?

正确做法:

mysql> select name, sum(scoure<60) as gk from student group by name having gk >= 2;

为啥用count是错误的呢?因为count()计数是按行计数,他也不管这科挂没。而sum()是求和,当小于60时,就是+1,大于等于60时就是+0。

时间: 2024-10-13 02:46:38

having筛选结果集的相关文章

FP-growth算法(一)——通过构建FP树发现频繁项集

常见的挖掘频繁项集算法有两类,一类是Apriori算法,另一类是FP-growth.Apriori通过不断的构造候选集.筛选候选集挖掘出频繁项集,需要多次扫描原始数据,当原始数据较大时,磁盘I/O次数太多,效率比较低下.FPGrowth不同于Apriori的"试探"策略,算法只需扫描原始数据两遍,通过FP-tree数据结构对原始数据进行压缩,效率较高. FP代表频繁模式(Frequent Pattern) ,算法主要分为两个步骤:FP-tree构建.挖掘频繁项集. FP树表示法 FP树

关于进行条件筛选的SQL关键字的一点理解

概述 一般能够用于条件筛选的有三种: ON: 联结(join)筛选 WHERE: 一般条件筛选 HAVING: 分组后的条件筛选 ON JOIN – ON 语句的执行顺序: 例句: SELECT * FROM A LEFT JOIN B ON A.ID = B.ID AND A<>0 WHERE A.name = 'x' 注意在作on 连接后 的and 子句 和where 子句 . 他们有什么不同? 逻辑上解释:(不考虑执行计划中执行步骤和作嵌套连接等具体方式,这里只讨论如何思考逻辑上的步骤)

技术文章 | 频繁项集挖掘算法之FPGrowth

频繁项集挖掘算法用于挖掘经常一起出现的item集合(称为频繁项集),通过挖掘出这些频繁项集,当在一个事务中出现频繁项集的其中一个item,则可以把该频繁项集的其他item作为推荐. 比如经典的购物篮分析中啤酒.尿布故事,啤酒和尿布经常在用户的购物篮中一起出现,通过挖掘出啤酒.尿布这个啤酒项集,则当一个用户买了啤酒的时候可以为他推荐尿布,这样用户购买的可能性会比较大,从而达到组合营销的目的. 常见的频繁项集挖掘算法有两类,一类是Apriori算法,另一类是FPGrowth.Apriori通过不断的

ElasticSearch 集群监控

要监控哪些 ElasticSearch metrics? Elasticsearch 提供了大量的 Metric,可以帮助您检测到问题的迹象,在遇到节点不可用.out-of-memory.long garbage collection times 的时候采取相应措施.但是指标太多了,有时我们并不需要这么多,这就需要我们进行筛选. 集群健康 一个 Elasticsearch 集群至少包括一个节点和一个索引.或者它 可能有一百个数据节点.三个单独的主节点,以及一小打客户端节点--这些共同操作一千个索

机器学习day16 机器学习实战Apriori算法进行关联分析

上一章学习了非监督学习的聚类,聚类算法可以将不同性质的分类分开.这两天学习了apriori算法进行关联分析,感觉是目前最难理解的一章了,并且书中还有个很坑爹的错误,作者存在很大的疏忽. Apriori算法关联分析:从大规模数据集中寻找物品间的隐含关系被称作关联分析或者关联规则学习. 关联分析应用1:我们以前学习的是根据特性进行分类或者回归预测,并没有挖掘特性之间的关系,关联分析可以用于分析数据集中特性之间的关系,可以得到哪些特性频繁的共同出现或者特性之间的关系(比如出现特性A就会很大几率出现特性

SQL语句 - 基本查询

select select_list [ into new_table ] from table_source [ where search_condition ] [ group by broup_by_expression ] [ having search_condition ] [order by order_by_expression [ asc | desc ] select查询语句中的主要参数说明如下 select_list:查询的列或者表达式的列表,用逗号进行分隔. new_ta

SQL Server脚本语句

一.语法结构 select select_list [ into new_table ] from table_source [ where search_condition ] [ group by broup_by_expression ] [ having search_condition ] [order by order_by_expression [ asc | desc ] select查询语句中的主要参数说明如下 select_list:查询的列或者表达式的列表,用逗号进行分隔.

MySQL的几种连接 join/inner join/cross join/逗号/left join/right join/natural join

转载请注明出处!! 之前数据表连接操作多使用逗号或者join,对几种连接的概念一直浑浑噩噩,最近研究了一波,把这些连接的区别搞明白了. 连接:A xjoin B(主表 操作 关联表) select过程:from->where->group by->having->order by->limit 在不使用on语法时,join.inner join.逗号.cross join结果相同,都是取2个表的笛卡尔积.逗号与其他操作符优先级不同,所以有可能产生语法错误,尽量减少用逗号 jo

Oracle多行记录合并处理

1:效果如下图所示: 表T1: CREATE TABLE T1 ( WEEKWORKID VARCHAR2(20) , DD VARCHAR2(20) ) 表T2 CREATE TABLE T2 ( WEEKWORKID VARCHAR2(20) , NR VARCHAR2(20) ) SQL语句: select t2.weekworkid,t2.nr,T.dd from t2 left join ( -- 4筛选结果集 select weekworkid,max(substr(dd,2))dd