sql分组

[转]LINQ分组查询统计(group by、count)

拜拜、爱过 提交于 2019-11-26 17:21:46
转自: http://www.cnblogs.com/pato/archive/2011/03/04/1971003.html 这里介绍Linq使用Group By和Count得到每个CategoryID中产品的数量,Linq使用Group By和Count得到每个CategoryID中断货产品的数量等方面。 学经常会遇到Linq使用Group By问题,这里将介绍Linq使用Group By问题的解决方法。 1.计数 var q = from p in db.Products group p by p.CategoryID into g select new { g.Key, NumProducts = g.Count() }; 语句描述:Linq使用Group By和Count得到每个CategoryID中产品的数量。 说明:先按CategoryID归类,取出CategoryID值和各个分类产品的数量。 2.带条件计数 var q = from p in db.Products group p by p.CategoryID into g select new { g.Key, NumProducts = g.Count(p = > p.Discontinued) }; 语句描述:Linq使用Group By和Count得到每个CategoryID中断货产品的数量。 说明

【sql:练习题11】查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩

放肆的年华 提交于 2019-11-26 17:15:11
题目:查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩 分析:这个我想了半天,我的局限思维是一直在学生分数表 student_score 表中直接 分组 group by ,再去筛选分数 可以先筛选分数再 分组 并having count sql 于下: select student.id, student.stdentname, AVG(student_score.score) from student,student_score where student.id = student_score.studentid and student_score.score<60 group by student_score.studentid having count(*)>1; 来源: https://www.cnblogs.com/yuanyuan2017/p/11328733.html

数据查询

偶尔善良 提交于 2019-11-26 17:02:13
1. 单表查询 1.1 语法 select distinct 字段1,字段2,字段3,... from 库名.表名 where 约束条件 group by 分组依据 having 过滤条件 order by 排序的字段 limit 限制显示的条数 1.2 执行优先级 from where group by having distinct order by limit 步骤:1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4.将分组的结果进行having过滤 5.执行select 6.去重 7.将结果按条件排序:order by 8.限制结果的显示条数 1.3 简单查询 (1) SELECT * FROM employee; SELECT name,salary FROM employee; (2)避免重复distinct SELECT DISTINCT post FROM employee; #指定一个字段,显示去重后的结果 (3)通过四则运算查询 SELECT name, salary*12 FROM employee; SELECT name, salary*12 AS Annual_salary FROM employee; SELECT name,

mysql group by分组查询

旧巷老猫 提交于 2019-11-26 16:43:49
分组的SQL语句有2个: group by 和分组聚合函数实现 partition by (oracle和postgreSQL中的语句)功能 group by + having 组合赛选数据 注意:having 条件的字段必须在前面查询赛选存在,否则语法错误 错误格式: SELECT MAX(ID),U_ID FROM mlzm_comments GROUP BY U_ID HAVING Data_Status >0 正确格式: SELECT MAX(ID),U_ID,Data_Status FROM mlzm_comments GROUP BY U_ID HAVING Data_Status >0 group by强调的是一个整体,就是组,只能显示一个组里满足聚合函数的一条记录, partition by 在整体后更强调个体,能显示组里所有个体的记录。 #实际需求,获取满足条件第一条信息或最后一条信息 步骤拆解: #步骤一:找出所有符合第一条件条件的数据,默认排序是按主键索引升序排列,这里按u_id 字段排序方便审阅 SELECT a.ID,a.U_ID FROM mlzm_content a WHERE a.Data_Status = 2 ORDER BY a.U_ID,a.ID ASC; #步骤2:利用group by 和max()、min()函数

【sql :每天进步一点点】GROUP BY

亡梦爱人 提交于 2019-11-26 13:48:01
一、分组概念:它将一组行记录按列或表达式的值分组成摘要行记录 二、使用语法: GROUP BY 子句必须在 FROM 和 WHERE 子句 后 出现 三、经常再聚合函数中使用:如:SUM, AVG, MAX, MIN, 和 COUNT 四、要筛选由 GROUP BY 子句返回分组行,要使用: HAVING 子句 举例: 按照课程分组 求平均值: 举例2: 按照学生分组,求平均分数值: 举例3:按照过滤条件来查找: 注意: 在SELECT语句中指定的每个列名也在GROUP BY子句中提到。未在这两个地方提到的列名将产生错误。 来源: https://www.cnblogs.com/yuanyuan2017/p/11322643.html

MySQL查询

耗尽温柔 提交于 2019-11-26 11:05:42
MySQL查询 一、单表查询 语法: 一、单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二、关键字的执行优先级(重点) 重点中的重点:关键字的执行优先级 from where group by having select distinct order by limit 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4.将分组的结果进行having过滤 5.执行select 6.去重 7.将结果按条件排序:order by 8.限制结果的显示条数 where约束 1.比较运算符:>、<、>=、<=、<>、!= 2.between 80 and 100 :值在80到100之间 3.in(80,90,100)值是10或20或30 4.like 'xiaomagepattern': pattern可以是%或者_。%小时任意多字符,_表示一个字符 5.逻辑运算符:在多个条件直接可以使用逻辑运算符 and or not group by 分组查询 #1、首先明确一点:分组发生在where之后

Oracle 分组排序函数

放肆的年华 提交于 2019-11-26 02:41:44
项目需求:分组排序 1、要求取出按field1分组后,并在每组中按照field2排序; 2、根据要求取出1中已经分组排序好的前多少行的数据; 1.row_number() over() row_number()over(partition by col1 order by col2)表示根据col1分组,再分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。 (1,2,3,4,5.....) 2.rank() over() rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)(1,2,2,4,5...) 3.dense_rank() over() dense_rank()也是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的。(1,2,2,3,4,5....) 示例SQL代码: CREATEDATE ACCNO MONEY 2014/6/5 111 200 2014/6/4 111 600 2014/6/5 111 400 2014/6/6 111 300 2014/6/6 222 200 2014/6/5 222 800 2014/6/6 222 500 2014/6/7 222 100 2014/6/6 333 800 2014/6/7 333 500 2014/6/8 333