MySQL聚合和分离的同时

时间:2013-04-27 15:17:41

标签: mysql group-by aggregate

我猜这个问题非常复杂。我的Mysql DB看起来像这样:

行程:

        
  • ID
  •     
  • 里程
  •     
  • car id
  •     
  • 驱动程序ID

驱动器:

        
  • ID
  •     
  • 名称

汽车:

        
  • ID
  •     
  • 模型

我需要实现的是一个聚合汽车BUT数据的表,用于不同的驱动程序,所以它看起来像这样:

        
  • 汽车:总里程数,......(这辆车,所有司机总数)
  •     
          
    • 司机:总里程,......(这辆车,仅限X1司机)
    •     
    • 司机:总里程,......(这辆车,仅限X2司机)
        
  • 汽车:总里程数,......(这辆车,所有司机总数)
  •     
          
    • 司机:总里程,......(这辆车,仅限X1司机)
    •     
    • 司机:总里程,......(这辆车,仅限X2司机)
    •     

等等。我完成了第一步,所以我按车的ID分组数据。我现在需要为每辆车获得相同的统计数据。

可以轻松完成吗?

感谢您的帮助

@EDIT

当前查询

"SELECT SUM(`przejazdy`.`przebieg`) as przebieg, SUM(`przejazdy`.`norma`) as norma, SUM(`przejazdy`.`faktyczne`) as zuzycie, `wozy`.`nr wozu`, `kierowcy`.`nr kierowcy` FROM `przejazdy` JOIN `wozy` ON `wozy`.`id` = `przejazdy`.`nr wozu` JOIN `kierowcy` ON `kierowcy`.`id` = `przejazdy`.`nr kierowcy` GROUP BY `przejazdy`.`nr wozu`, `przejazdy`.`nr kierowcy` WITH ROLLUP";

它返回一个“平面”数组,不是很有用 - 我需要2级数组:

key:car's id - >包含驱动程序ID,里程数和其余统计数据的数据数组以及总汽车数据的“总数”数组

1 个答案:

答案 0 :(得分:0)

尝试使用car-ID和Driver进行GROUPING并按里程汇总并使用GROUP BY中的WITH ROLLUP:

SELECT carID, dirverID, sum(mileage) FROM ... GROUP BY 1, 2 WITH ROLUP;