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为真的行数。

全部评论

相关推荐

求职老司机:前端比后端还难 hc 砍一半 不如学点 node 偏全栈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务