毎日少なくとも1件の投稿を行ったすべてのハッカーを見つけたいと思います。毎日少なくとも1件の投稿を行ったハッカーを見つけるためのMySQLクエリ
テーブルは次のようになります。id、date。
1, 2016-01-01
2, 2016-01-01
3, 2016-01-01
1, 2016-01-02
2, 2016-01-02
1, 2016-01-03
ので、出力は次のようになります。 1は、すべての日に提出してきたので。私が試してみました何
は次のとおりです。
Select id from table
group by id
having count(*)=3 /* Since number of days are 3 */
ハッカーが日に複数の提出を行うことができますので、しかし、これは正しくありません。私のクエリは失敗します 例:
1, 2016-01-01
2, 2016-01-01
3, 2016-01-01
3, 2016-01-01
3, 2016-01-01
1, 2016-01-02
2, 2016-01-02
1, 2016-01-03
これが解決された後、元の質問は次のとおりです。
は上の開始(毎日少なくとも提出をしたユニークなハッカーの総数を印刷するクエリを書きますコンテストの最初の日)、毎日最大数の投稿を行ったハッカーのhacker_idと名前を見つけます。そのようなハッカーが複数提出している場合は、最低のhacker_idを出力してください。
select id
from t
group by id
having count(distinct date) = (select count(distinct date) from t);
また、毎日提出しなかったハッカーを検索するクエリを考えてもいいですか?あなたの望む結果はその逆です。 – Strawberry