SUM是对符合条件的记录的数值列求和
COUNT 是对查询中符合条件的结果(或记录)的个数
例如:
表fruit
id name price
1 apple 3.00
2 pear 4.00
select count(price) from fruit; —-执行之后结果为:2 (表示有2条记录)
select sum(price) from fruit;—执行之后结果为:7:00(表示各记录price字段之和为7.00)
select * from A where id in (select id from B);
select * from A where exists (select 1 from B where A.id=B.id);
对于以上两种情况,in是在内存里遍历比较,而exists需要查询数据库,所以当B表数据量较大时,exists效率优于in。
1、select * from A where id in (select id from B);
in()只执行一次,它查出B表中的所有id字段并缓存
order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。 group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。
什么是“聚合函数”? 像sum()、count()、avg()等都是“聚合函数” 使用group by 的目的就是要将数据分类汇总。 一般如: select 单位名称,count(职工id),sum(职工工资) form [某表] group by 单位名称 这
findById得到的是一个Optional(jdk1.8的新特性之一),之后用.get()就可以获取相应的对象
getOne得到的是对应得实体类对象,如果需要在单元测试中使用此方法,要加上事务支持注解,即Transactional,才可以正常使用
从源码分析
public Optional findById(ID id) {
Assert.notNull(id, "The given id must not be null!");
Class domai