これは可能ではないかもしれませんが、ショットに値するかもしれません。WHERE引数を使用せずにDISTINCTデータを必要とするSUM/COUNT内のオブジェクトの制限
非常に複雑なクエリがあり、特定のフィールドを作成しようとしています。要するに、ToS受諾の日付があるユーザーもあれば、(まだ)そうでないユーザーもあれば、両方を表示する必要があるユーザーもいますが、ToS SUMの後にログイン日を付ける必要があります。しかし、私は総ログインだけではなく、別個の日付の合計を求めています。それは私が
を持っている必要がありますNULLものを排除するので、私は、引数t2.session> = t1.ToSで追加することはできません
は、ここでの問合せの簡略図です:
SELECT t1.user,
IF(t1.ToS IS NULL, NULL,COUNT(DISTINCT DATE_FORMAT(t2.sessionTime, '%Y-%m-%d'))) AS TotalLoginDates
FROM t1
JOIN t2 ON t1.id = t2.userId
最良のオプションがサブクエリ、CASE、または他のオプションであるかどうかは不明です。
ご協力いただきありがとうございます。
EDIT:いくつか入力し、所望の出力:
t1 id | user | ToS 1 | John Doe | 2017-01-01 00:00:00 2 | Dave Smith | 2017-02-01 06:00:00 3 | Alan Smithee | 2017-03-01 12:00:00
t2 sessionId | userId | sessionTime 1001 | 1 | 2017-01-01 00:01:00 1002 | 1 | 2017-01-05 03:17:45 1003 | 2 | 2016-12-15 15:27:34 1004 | 2 | 2017-03-15 16:67:12 1005 | 3 | 2017-04-02 12:00:00 1005 | 3 | 2017-04-02 13:15:00
Desired Output: t1.user | TotalLoginDates John Doe | 2 Dave Smith | 1 (only one date after ToS) Alan Smithee | 1 (2 logins on a single date)
あなたは、例えば、入力と出力の値を提供してもらえますか? – VirCom
参照:[私は非常に単純なSQLクエリと思われるものに対してMCVEを提供するのはなぜですか?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve非常にシンプルなSQLクエリ) – Strawberry
追加情報を追加し、MCVE情報を確認しました。ありがとう。 –