应用场景:按照时间perday,统计每一天不同类型send对应的userid总数,数据如下:

显示为下面

一般思路:对perday进行group by 排序,但是时间会重复,多一条数据,无法将同一天的进行合并
with
cr as
( SELECT perday,case send when '30000' then count(userid) end as num1,case send when '50000' then count(userid) end as num2 from 表名 where send in (30000,50000) group by perday,send
)select perday,max(num1) as num1,max(num2) as num2 from cr group by perday order by perday(此处max尤为关键)
WITH AS 短语,也叫做子查询部分(subquery factoring),可以定义一个SQL片断,该SQL片断会被整个SQL语句用到。可以使SQL语句的可读性更高,也可以在UNION ALL的不同部分,作为提供数据的部分。
博客介绍了sqlsrv的应用场景,即按时间perday统计每天不同类型send对应的userid总数。指出一般思路存在问题,给出了关键SQL代码,还介绍了WITH AS短语,它可定义SQL片断,提高语句可读性,也能为UNION ALL提供数据。
388

被折叠的 条评论
为什么被折叠?



