ユーザーあたりの一意のログイン日数を数えてクエリを作成しています(1-2、 3-4ログイン日など)、部門ごとに各バケットの各ユーザー数を返します。これがあまり明確でない場合はお詫び申し上げます。下記の例が私の質問を示すのに役立つことを願っています。MySQL - 一意のログイン日数と部署別のユーザー数でグループ化する
私はこのようなテーブルを持っている:私はこのようなテーブル返したい
+-------------+-----------+------------+-----------------+
| time | user_name | dept | event |
+-------------+-----------+------------+-----------------+
| 2016-01-04 | Joe | finance | logged in |
| 2016-01-04 | Jeff | marketing | logged in |
| 2016-01-04 | Jeff | marketing | project created |
| 2016-01-04 | Bob | finance | logged in |
| 2016-01-04 | Mark | accounting | logged in |
| 2016-01-05 | Bob | finance | logged in |
| 2016-01-08 | Bob | finance | logged in |
| 2016-01-09 | Jeff | marketing | logged in |
| 2016-01-10 | Jeff | marketing | logged in |
| 2016-01-11 | Nate | accounting | logged in |
| 2016-01-11 | Nate | accounting | project created |
+-------------+-----------+------------+-----------------+
:
select
(case when count(distinct(`time`)) between 1 and 2 then '1-2'
when count(distinct(`time`)) between 3 and 4 then '3-4'
else '5+'
end) as buckets, dept, user_name
from change_log where event in ('logged in')
group by dept, user_name
:今のところ
+------------------+-----------------+------------+
| number of logins | number of users | dept |
+------------------+-----------------+------------+
| 1-2 | 1 | finance |
| 3-4 | 1 | finance |
| 5+ | 0 | finance |
| 1-2 | 0 | marketing |
| 3-4 | 1 | marketing |
| 5+ | 0 | marketing |
| 1-2 | 2 | accounting |
| 3-4 | 0 | accounting |
| 5+ | 0 | accounting |
+------------------+-----------------+------------+
を、私のクエリは次のようになりますしかし、これは以下のようなテーブルを返しています。これは私が望むものに最も近いものですが、私はそれをロールバックする方法がわかりませんバケツと部門。
+---------+------------+-----------+
| buckets | dept | user_name |
+---------+------------+-----------+
| 1-2 | accounting | Mark |
| 1-2 | accounting | Nate |
| 3-4 | finance | Bob |
| 1-2 | finance | Joe |
| 3-4 | marketing | Jeff |
+---------+------------+-----------+
これは動作するようです!私は「すべての派生テーブルには別のエイリアスが必要です。エラーメッセージが表示されますが、2番目のselectステートメントから派生テーブルにエイリアスを渡した後に動作しました。どうもありがとう!私はまだネストされた選択ステートメントに慣れようとしています。 – user5805996
私は本当に本当に必要な場合、私はそれらを使用します。ほとんどの場合、私は複数の選択されたステムをネストして混乱します。そのような場合、私は一時的なテーブルを作成し、それらを使用して最終結果を得ようとします。 – Nomeaning25