没有group by的聚合查询

时间:2014-11-22 18:54:41

标签: sql sqlite

我有供应商 - 项目 - 零件数据库。我已经为查询编写了一个代码:“获取项目编号和该项目提供的零件的平均值” 我已经使用GROUP BY完成了这项工作。我想知道如果没有GROUP BY我是否可以做到这一点。


数据库:

SUPPLIER(SNUMBER, SNAME, STATUS, CITY)
PROJECT(JNUMBER, JNAME, CITY)
PART(PNUMBER, PNAME, CITY, COLOR, WEIGHT)
SPJ(SNUMBER, PNUMBER, JNUMBER, QUANTITY)

编辑1:我编辑了查询。查询为:“获取该项目提供的零件的项目编号和重量的平均值。每个提供的零件必须计算一次。

1 个答案:

答案 0 :(得分:1)

您可以使用相关子查询来计算聚合值:

SELECT JNumber,
       (SELECT SUM(Quantity * Weight) / SUM(Quantitiy)
        FROM SPJ
        JOIN Part USING (PNumber)
        WHERE JNumber = Project.JNumber
       ) AS AvgParts
FROM Project

这通常与使用GROUP BY的连接一样快,但稍微复杂一些。