仅在周末的两天计算行数

时间:2017-08-18 06:36:53

标签: mysql

我有一张这样的表:

id|shift|      date|
 1|   s1|2017-08-12|  
 2|   s2|2017-08-14|
 3|   s3|2017-08-20|
 4|   s2|2017-08-26|
 5|   s3|2017-08-27|
 6|   s1|2017-08-28|

我想计算一个周末的两天(同一个周末的周六和周日)以及仅在两天的任何轮班工作的次数。

在上面的例子中,唯一的完整周末是8 / 26-8 / 27所以答案应该是1.

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

自己加入桌子。 (与前一天一起加入星期日)。

select count(*)
from yourTable sun -- sunday
join yourTable sat -- saturday
  on  sat.shift = sun.shift
  and sat.date  = sun.date - interval 1 day
where dayofweek(sun.date) = 1 -- sunday