我想创建一个查询以取回所有用户,上次登录日期以及自上次登录以来他们已回答的问题。
我有以下查询可以执行我正在寻找的内容但是使用单个用户而不是所有用户。
SELECT l.user_id,
Count(*) attemptsSinceLastLogin
FROM production.score s
JOIN processedquestion pq
ON s.attempt_id = pq.attempt_id
JOIN login l
ON l.user_id = pq.user_id
WHERE l.user_id = 123
AND s.selected_answer IS NOT NULL
AND pq.attempt_datetime > (SELECT Max(in_datetime)
FROM production.login
WHERE user_id = 123);
我也有这个查询可以获取所有用户及其上次登录日期,但是他们没有回答过多少问题。
SELECT user_id,
Max(in_datetime)
FROM production.login
GROUP BY user_id
我无法使用这两个查询来尝试提出一个可以一次性回收所有数据的查询。任何帮助表示赞赏
答案 0 :(得分:1)
试试这个:
SELECT l.user_id,
Count(*) attemptsSinceLastLogin
FROM production.score s
JOIN processedquestion pq
ON s.attempt_id = pq.attempt_id
JOIN login l
ON l.user_id = pq.user_id
JOIN (SELECT user_id,
Max(in_datetime) AS last_login
FROM production.login
GROUP BY user_id) t
ON l.user_id = t.user_id
WHERE s.selected_answer IS NOT NULL
AND pq.attempt_datetime > t.last_login
GROUP BY l.user_id