根据给定的日期范围,我需要一些帮助来计算和分组一些MySql表记录。 表格strcutre是这样的:
提前感谢您的帮助
答案 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。