代码之家  ›  专栏  ›  技术社区  ›  tggtsed

PostgreSQL从平均值中排除值

  •  0
  • tggtsed  · 技术社区  · 1 年前

    我正在计算表中数值的平均值

    CREATE TABLE measurements (
      id SERIAL PRIMARY KEY,
      measurement INTEGER NOT NULL
    );
    
    import postgres from "https://deno.land/x/postgresjs@v3.3.3/mod.js";
    
    const averageMeasurement = async() => {
        const rows =  await sql`SELECT AVG(measurement) AS average FROM measurements`;
        return rows[0].average;
    }
    const sql = postgres({});
    
    export{averageMeasurement}
    
    

    如何从平均值的计算中排除大于1000或小于0的值?

    尝试时出现内部服务器错误

    import postgres from "https://deno.land/x/postgresjs@v3.3.3/mod.js";
    
    const averageMeasurement = async() => {
        const excMeasurements = await sql`SELECT * FROM measurements WHERE measurement <= 1000 AND measurement > 0`
        const rows =  await sql`SELECT AVG(measurement) AS average FROM excMeasurements`;
        return rows[0].average;
    }
    const sql = postgres({});
    
    export{averageMeasurement}
    
    1 回复  |  直到 1 年前
        1
  •  0
  •   Pointy    1 年前

    您可以简单地添加 WHERE 谓词:

    SELECT AVG(measurement) AS average FROM measurements
      WHERE measurement >= 0 AND measurement <= 1000