TypeORM 中的聚合运算(Sum、Avg、Min、Max、Count)
这篇简短而直接的文章向您展示了如何在 TypeORM 中执行聚合运算。我们将使用查询构建器和聚合函数来计算以下内容:
- Sum : 值的总和
- Avg : 平均值
- Min:最小值
- Max : 最大值
- Count:统计记录
假设我们有一个名为employee的表,它存储有关虚构公司员工姓名和薪水的信息。这是使用 TypeORM 定义的实体Employee :
// KindaCode.com Example
// Employee Entity
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class Employee {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
salary: number;
}
您可以像这样向表中添加一些虚拟数据:
现在我们可以使用查询构建器来查找总薪水、平均薪水、最高薪水、最低薪水,并计算员工人数,如下所示:
const employeeRepository = myDataSource.getRepository(Employee);
const result = await employeeRepository
.createQueryBuilder('employee')
.select('SUM(employee.salary)', 'totalSalary')
.addSelect('AVG(employee.salary)', 'averageSalary')
.addSelect('MAX(employee.salary)', 'maxSalary')
.addSelect('MIN(employee.salary)', 'minSalary')
.addSelect('COUNT(*)', 'count')
.getRawOne();
console.log(result);
输出:
{
totalSalary: '45000',
averageSalary: '7500.0000000000000000',
maxSalary: 12000,
minSalary: 3000,
count: '6'
}
就是这样!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。