天天看点

MySQL 复杂查询1 (统计一个月的生产总额)

 一张user表:

MySQL 复杂查询1 (统计一个月的生产总额)

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
           

结果:

MySQL 复杂查询1 (统计一个月的生产总额)

=======================================================

需要注意点:

没有 "as total"取别名 的话,会报错:

Mysql错误:Every derived table must have its own alias

如:“每个派生表都必须有自己的别名"

MySQL 复杂查询1 (统计一个月的生产总额)

一般是在多表查询或者子查询的时候会出现这个错误,

因为在嵌套查询中,子查询的结果是作为一个派生表给上一级进行查询,

所以子查询的结果必须有一个别名。

所以随便取个别名就ok

MySQL 复杂查询1 (统计一个月的生产总额)