按多列

时间:2016-11-22 12:06:06

标签: mysql sql-order-by

我的服务有多个任务。每个任务都有一个特定向量的扣除。

我希望每个Vector_id和每个服务都查询所有Vector Deduction%。

例如我想:

Service   |   Vector   |   Deduction %
---------------------------------------
  SM      |     10     |       5
  SM      |     11     |      10
  ....
  ES      |     10     |       5    
  ....

我已经订购了我希望总结Deduction的列,但无法通过声明得到正确的分组:

Select
Service.name AS ServiceName,
Task.name AS TaskName,
Deduction.Vector_id AS DeductionVector,
Deduction.deduction AS DeductionPercentage
FROM
Task JOIN Service ON
Service.id = Task.Service_id
JOIN Deduction ON
Deduction.Task_id = Task.id    
ORDER BY ServiceName, DeductionVector;

以下是我使用的表格和一些数据:http://www.sqlfiddle.com/#!9/ea5f70

1 个答案:

答案 0 :(得分:0)

试试这个:

Select
    Service.name AS ServiceName,
    Task.name AS TaskName,
    Deduction.Vector_id AS DeductionVector,
    SUM(Deduction.deduction) AS DeductionPercentage
...
GROUP BY Service.name, Task.name, Deduction.Vector_id
...

请注意,您应始终Group BySelect中使用的所有列,但COUNTSUM等汇总值除外。