我需要一些帮助来根据给定的日期范围对一些 MySql 表记录进行计数和分组。表结构是这样的:
在此先感谢您的帮助
这应该给你你需要的结果:
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 将每个日期加入到返回日期。总计是两个计数的总和。
小提琴在这里。