【发布时间】:2019-02-10 23:35:36
【问题描述】:
如何在一个查询中连接几个表(包括查询)更好?
例如,我有 2 个表:活动 (user_id, login_time) 和支付 (user_id, payment_time, amount)。两个表都有重复的 id。
任务是选择唯一的 user_id,它曾经支付过,login_time 从 05.04.12 到 10.04.12。然后按组计算总金额。
我的查询是:
SELECT t.diapason, COUNT(*) AS 'number_of_users'
FROM (SELECT CASE
when amount<100 then '0-100'
when amount>=100 then '100 +' END AS diapason
FROM
(SELECT SUM(amount) AS amount
FROM payments GROUP BY payments.user_id) p) t
GROUP BY t.diapason
ORDER BY number_of_users desc;
我不知道在“2012-04-05”和“2012-04-10”之间应该在哪里使用“inner join a....”
请帮忙,谢谢!
数据样本
activity
user_id login_time
1 05.04.2012
2 05.04.2012
3 06.04.2012
4 30.05.2012
payments
user_id amount payment_time
1 50 10.12.2011
1 20 09.12.2011
2 400 08.08.2011
Output for period 05.04.2012-10.04.2012
diapason number_of_users
0-100 2
100+ 1
【问题讨论】:
-
一些示例数据和预期输出会有所帮助!
-
这不是你今天早些时候发布的同一个问题吗???同样,没有更多信息,没有人可以帮助您。读这个。 stackoverflow.com/help/how-to-ask
-
我已投票决定关闭此问题,因为它与您之前提出的同一问题重复。如果您想更改原始问题,请返回并编辑原始问题,而不是发布新问题。否则,你会造成很多混乱。
-
@BobRodes,我没有找到答案((
标签: mysql sql database join select