代码之家  ›  专栏  ›  技术社区  ›  Christian Mann

满足一定条件的行字段的SQL-ORDER BY SUM()查询设计

  •  3
  • Christian Mann  · 技术社区  · 16 年前

    project service

    project
    -------  
    id PK  
    name str
    
    service  
    ------- 
    project_id FK for project  
    time_start int (timestamp)  
    time_stop int (timestamp)  
    

    一对多关系。

    现在,我想返回(最好是通过一个查询)一个包含任意数量项目的列表,按花费在这些项目上的总时间排序,由 SUM(time_stop) - SUM(time_start) WHERE project_id =

    到目前为止,我已经

    SELECT project.name  
    FROM service  
    LEFT JOIN project ON project.id = service.project_id  
    LIMIT 100
    

    但我不知道该怎么办 ORDER BY .

    1 回复  |  直到 6 年前
        1
  •  4
  •   Mark Byers    16 年前

    你需要一个小组:

    SELECT project.name
    FROM service
    LEFT JOIN project ON project.id = service.project_id
    GROUP BY project_id
    ORDER BY SUM(time_stop - time_start)
    LIMIT 100