一张user表:
id为自增主键,uid为用户id,product为产品线代号,
value为用户在product产品线上盈利金额,
day为产生数据的日期(是个8位的int类型)
现要求:
求出用户在7月份所有产品线上产生金额超过(包含)100的uid和总金额。
解题思路:
首先求出用户在7月分所有产品线的uid和总金额,然后在此基础上,
求总金额>=100的 uid 和 总金额:
select uid, amount from
(
select uid, sum(value) as amount
from user
where day >=20190701 and day <=20190731
GROUP BY uid
) as total
WHERE amount >=100
结果:
=======================================================
需要注意点:
没有 "as total"取别名 的话,会报错:
Mysql错误:Every derived table must have its own alias
如:“每个派生表都必须有自己的别名"
一般是在多表查询或者子查询的时候会出现这个错误,
因为在嵌套查询中,子查询的结果是作为一个派生表给上一级进行查询,
所以子查询的结果必须有一个别名。
所以随便取个别名就ok