ユーザー・利用のすべての値の一覧を取得したい場合:
SELECT A.user_id, SUM(B.value) SUM_OF_VALUES FROM
(SELECT user_id, value FROM user_reg
WHERE session_date BETWEEN '2017-01-01' AND '2017-06-10'
GROUP BY user_id, value) A INNER JOIN
(SELECT user_id, MAX(session_date) FROM user_extra
WHERE session_date<='2017-01-01' GROUP BY user_id) B
ON A.user_id=B.user_id
GROUP BY A.user_id;
:ユーザー使用の合計値を取得したい場合でも、
SELECT A.user_id, GROUP_CONCAT(B.value) LIST_OF_VALUES FROM
(SELECT user_id, value FROM user_reg
WHERE session_date BETWEEN '2017-01-01' AND '2017-06-10'
GROUP BY user_id, value) A INNER JOIN
(SELECT user_id, MAX(session_date) FROM user_extra
WHERE session_date<='2017-01-01' GROUP BY user_id) B
ON A.user_id=B.user_id
GROUP BY A.user_id;
を
これで選択された別名が削除されました。どうすればuser_idにdistinctを保持できますか? – Ahmed
私はそれを考え出しました。私はDISTINCT句をselectに追加しました。内側のjoin selectのuser_idでは、useridに変更しました。それがうまくいきました。 – Ahmed