2017-08-18 11 views
0

は私が持っている場合にのみ、このようなテーブル:数える行週末の両日に

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| 

が、私は任意のシフトが週末の両日に働いている回数をカウントしたいと思います(土曜日と同じ週末の日曜日)、両方の日にのみ。上記の例では

は、唯一の完全な週末は働いていたので、答えは1

すべてのヘルプははるかに高く評価されるべきである8/26-8/27です。

+0

です。何かを試してください。 – Strawberry

+0

**自分でコードを書くことができます**。 [もっと研究をした後](https://meta.stackoverflow.com/q/261592/1011527) 問題がある場合は**投稿した内容を投稿してください** working **と は、[最小、完全、および検証可能な例]を提供します(http://stackoverflow.com/help/mcve)。 [よくある質問のしくみ](http://stackoverflow.com/help/how-to-ask)をお読みください。 [ツアーに参加する](http://stackoverflow.com/tour)と[this](https://meta.stackoverflow.com/q/347937/1011527)を必ずお読みください。 –

答えて

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 
+0

ありがとう!これはうまくいった。私は自分自身にテーブルを参加させることを考えていましたが、それをうまく動作させることはできませんでした。また、CASE WHENを使って試してみました...成功もありません。 – sammy

関連する問題