order by

SQL查询系列之七:SQL分组查询

有些话、适合烂在心里 提交于 2019-12-09 12:58:54
很多情况下,我们需要进行一些汇总操作,比如统计整个公司的人数或者统计每个部门的人数,这个时就要用到 SQL 的分组查询,又称为 聚合查询 。 聚合操作的语法如下: SELECT [field1,field2,……fieldn] fun_name FROM tablename [WHERE where_contition] [GROUP BY field1,field2,……fieldn [WITH ROLLUP]] [HAVING where_contition] 对其参数进行以下说明。 ¡ fun_name表示要做的聚合操作,也就是聚合函数,常用的有sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。 ¡ GROUP BY关键字表示要进行分类聚合的字段,比如要按照部门分类统计员工数量,部门就应该写在group by后面。 ¡ WITH ROLLUP是可选语法,表明是否对分类聚合后的结果进行再汇总。 ¡ HAVING关键字表示对分类后的结果再进行条件的过滤。 注意:having和where的区别在于having是对聚合后的结果进行条件的过滤,而where是在聚合前就对记录进行过滤,如果逻辑允许,我们尽可能用where先过滤记录,这样因为结果集减小,将对聚合的效率大大提高,最后再根据逻辑看是否用having进行再过滤。 示例: 要emp表中统计总人数:

CYQ.Data 轻量数据层之路 V4.5 版本发布[更好的使用体验,更优的缓存机制]

匿名 (未验证) 提交于 2019-12-02 23:43:01
2019独角兽企业重金招聘Python工程师标准>>> 前言: 继上一版本: CYQ.Data 轻量数据层之路 V4.3 版本发布[增加对SQLite,MySQL数据库的支持] ,至今已快近3个月了,中间仅有V4.5beta版本供下载,却没正式发布,今天,终于要把V4.5给发布了。 下面看一下新版本的修改记录 实用: 1:MAction:Select方法增加重载:Select(string where); 2:FormatWhere处理了"Parent is null"的"is"关键字;处理"order by"语句补充为"1=1 order by ..." 3:MAction增加Exists方法 4:MDataRow 增加ToEntity<T>()方法转实体 5:允许更新Null值到数据库中 事务: 6:修正事务二次回滚的错误,即连续调用两次action.RollBack(); 7:修正二次启动事务。 缓存: 8:缓存增加Set方法,无则添加,有则更新 9:大力修改Cache机制,使信息更容易查看.[定时清缓存] 其它: 10:MDataRow 重写Clear()方法,该方法将清除行的数据[即数据重置为Null] 11:AOP的End方法修改返回值为MDataRow和MDataTable结果集 12:修正OrmBase转实体时值为DBNull.Value的转换异常