DAY2——查询近30天活跃用户数
DATE_ADD()函数用于指定日期添加时间间隔的函数。
它的语法如下: DATE_ADD(date, INTERVAL expr unit)
其中,
date是需要增加(减少)时间的日期,
expr是需要增加(减少)的时间数量,
unit是需要增加(减少)的时间单位(如天、小时、分钟等)。
如需要统计截至 2019-07-27(包含2019-07-27),近 30 天的每日活跃用户数,即统计2019-07-27当日和日前的29天。
可以使用 DATE_ADD('2019-07-27',INTERVAL -29 day) 计算出近30日的起始时间,再使用 BETWEEN...AND... 连结,得到所需的时间段。
重新格式化部门
重新格式化表格,使得 每个月 都有一个部门 id 列和一个收入列。
以 任意顺序 返回结果表。
结果格式如以下示例所示。
答案:
select id,
sum(case when month = 'Jan' then revenue end) as Jan_Revenue,
sum(case month when 'Feb' then revenue end) as Feb_Revenue,
sum(case month when 'Mar' then revenue end) as Mar_Revenue,
sum(case month when 'Apr' then revenue end) as Apr_Revenue,
sum(case month when 'May' then revenue end) as May_Revenue,
sum(case month when 'Jun' then revenue end) as Jun_Revenue,
sum(case month when 'Jul' then revenue end) as Jul_Revenue,
sum(case month when 'Aug' then revenue end) as Aug_Revenue,
sum(case month when 'Sep' then revenue end) as Sep_Revenue,
sum(case month when 'Oct' then revenue end) as Oct_Revenue,
sum(case month when 'Nov' then revenue end) as Nov_Revenue,
sum(case month when 'Dec' then revenue end) as Dec_Revenue
from Department
group by id
题目中如果使用select id,revenue from Department group by id 这样的语句是错误的,因为分组后无法识别是哪一组
细节注意:
(1)表达式rating<3的结果是一个布尔值(真或假),而不是实际的计数。因此,count(rating<3)实际上是在计算rating<3表达式结果为非NULL的行数,而不是rating<3为真的行数。

CVTE公司福利 936人发布