【发布时间】:2015-04-30 22:10:43
【问题描述】:
在我的表格中,我记录了各种信息,但此问题的关键字段是 subject_id 和 course_time对于每个主题(每周总计),因此来自此示例数据:
id subject_id lesson_time
1 4 2015-04-28
2 4 2015-04-28
3 3 2015-04-28
4 1 2015-04-28
5 4 2015-04-27
我想计算周一到周五和每周的每个主题的总数,因此上述数据示例的输出将是:
subject_id monday_total tuesday_total wednesday_total ... week_total
1 0 1 0 1
3 0 1 0 1
4 1 2 0 3
我可以很容易地按主题计算总数,因为它只是分组后的计数(*),我正在努力的是每一天的计数,我当前(非工作)查询是
SELECT
subject_id,
COUNT( DAYOFWEEK(lesson_time)=2) AS monday_total,
COUNT( DAYOFWEEK(lesson_time)=3) AS tuesday_total,
COUNT( DAYOFWEEK(lesson_time)=4) AS wednesday_total,
COUNT( DAYOFWEEK(lesson_time)=5) AS thursday_total,
COUNT( DAYOFWEEK(lesson_time)=6) AS friday_total,
COUNT(*) AS week_total
FROM
tbl_lessons
GROUP BY
subject_id
任何帮助将不胜感激。
【问题讨论】:
-
将
COUNT( DAYOFWEEK(lesson_time)=2)更改为SUM( DAYOFWEEK(lesson_time)=2) -
谢谢!解决了!
-
您想在
GROUP BY总数中包含周六和周日吗? -
@Aelfwine 很好。请在下面接受我的回答
-
@Peter - 你的回答是正确的,但它不会让我接受,说我必须等几分钟,但我会尽快做。
标签: mysql