Mysql 周末按日期分组
我有下一个数据库: 我想知道的是这个城市的名字,以及按周末分组的旅游人数 我试着做这样的事情Mysql 周末按日期分组,mysql,Mysql,我有下一个数据库: 我想知道的是这个城市的名字,以及按周末分组的旅游人数 我试着做这样的事情 select `cities`.`name`, SUM( CASE DAYOFWEEK(DATE(date)) WHEN 7 OR 1 THEN 1 ELSE 0 END)AS TOURS from `cities` left join `tours` on `cities`.`id` = `tours`.`city_id` group by `cities`.`name`; 因此,如果我在201
select `cities`.`name`,
SUM( CASE DAYOFWEEK(DATE(date)) WHEN 7 OR 1 THEN 1 ELSE 0 END)AS TOURS
from `cities`
left join `tours` on `cities`.`id` = `tours`.`city_id`
group by `cities`.`name`;
因此,如果我在2019/03/02星期六、2019/03/03星期天在X市有旅行团,我会返回X和1旅行团,因为它在周末将日期分组。如果它的日期是2019/03/09、2019/03/10,我会返回城市X和2 tours的名称,因为它的日期是2和3,作为1;9号和10号是另一个巡演
我所做的查询只计算周六和周日,没有区分不同的周
有什么想法吗
使现代化
我加了一把小提琴
期望的结果是
| name | TOURS |
| ----------- | ----- |
| Amatitlan | 0 |
| Guatemala | 3 |
| Villa Nueva | 1 |
如果我没弄错的话,你只想按不同的星期计算周末的旅行次数 我认为以下是解决方案。如果我错了,请纠正我
select `cities`.`name`,
SUM( CASE DAYOFWEEK(DATE(date)) WHEN 7 OR 1 THEN 1 ELSE 0 END)AS TOURS,
WEEKS(date),
from `cities`
left join `tours` on `cities`.`id` = `tours`.`city_id`
group by `cities`.`name`,WEEKS(date);
我补充说
count(distinct week(`tours`.`date`, 1))AS TOURS
并完成查询
select `cities`.`name`,
count(distinct week(`tours`.`date`, 1))AS TOURS
from `cities`
left join `tours` on `cities`.`id` = `tours`.`city_id`
group by `cities`.`name`;
您能提供一些示例数据和预期结果吗?WEEKS不是有效的MySQL函数。我想你可能想要一周