当前位置:首页 > 开发 > 正文内容

TypeORM 中的聚合运算(Sum、Avg、Min、Max、Count)

hackcode2023年05月07日 15:26开发1270

这篇简短而直接的文章向您展示了如何在 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'
}

就是这样!

返回列表

上一篇:Redis 6.0 win编译版

下一篇:JWT