选择并分组MySql表

时间:2013-05-05 17:06:14

标签: php mysql

根据给定的日期范围,我需要一些帮助来计算和分组一些MySql表记录。 表格strcutre是这样的:

enter image description here

提前感谢您的帮助

1 个答案:

答案 0 :(得分:2)

这句话可以为您提供所需的结果:

SELECT
  d1.dt,
  COUNT(DISTINCT t1.recid) AS departures,
  COUNT(DISTINCT t2.recid) AS returns,
  COUNT(DISTINCT t1.recid) + COUNT(DISTINCT t2.recid) AS total
FROM (SELECT departure_date AS dt FROM yourtable
      UNION SELECT return_date FROM yourtable) d1
  LEFT JOIN yourtable t1 ON d1.dt = t1.departure_date
  LEFT JOIN yourtable t2 ON d1.dt = t2.return_date
GROUP BY
  d1.dt

第一个子查询将返回表中存在的所有日期(不重复)(离开和返回)。

然后我尝试使用LEFT JOIN将每个日期加入出发日期。我正在计算使连接成功的DISTINCT t1.recid ..

然后我尝试使用LEFT JOIN将每个日期加入到返回日期。总计是两个计数的总和。

小提琴是here