首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将SQL查询结果输出到报表表格中?

如何将SQL查询结果输出到报表表格中?
EN

Stack Overflow用户
提问于 2018-07-26 06:30:40
回答 1查看 390关注 0票数 1

我有以下表字段:

代码语言:javascript
复制
Invitations (user_id, type, created_at, completed_at)

我目前可以通过运行以下查询和手动计算来获得上周的邀请会话速率。

代码语言:javascript
复制
SELECT * 
FROM invitations
WHERE created_at >= curdate() - INTERVAL DAYOFWEEK(curdate())+6 DAY
AND created_at < curdate() - INTERVAL DAYOFWEEK(curdate())-1 DAY
AND user_id != 1
AND type = 'email'
ORDER BY completed_at, created_at

有没有可能用SQL输出更多的报告...返回的东西:

代码语言:javascript
复制
LAST WEEK | Total Invitations | Invitations Completed | % Conversion    
          | 100               | 50                    | 50%  
TWO WEEKS | Total Invitations | Invitations Completed | % Conversion    
          | 100               | 60                    | 60%  

这样的事情可以用SQL实现吗?或者我需要用应用程序逻辑来创建吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-26 06:56:45

也许您想使用count()进行聚合并执行一个UNION ALL

代码语言:javascript
复制
SELECT 'LAST WEEK' `Period`,
       count(created_at) `Total Invitations`,
       count(completed_at) `Invitations completed`,
       concat(count(completed_at) / count(created_at) * 100, '%') `% Conversion` 
       FROM invitations
       WHERE created_at >= curdate() - INTERVAL dayofweek(curdate()) + 6 DAY
             AND created_at < curdate() - INTERVAL dayofweek(curdate()) - 1 DAY
             AND user_id <> 1
             AND type = 'email'
UNION ALL
SELECT 'TWO WEEKS' `Period`,
       count(created_at) `Total Invitations`,
       count(completed_at) `Invitations completed`,
       concat(count(completed_at) / count(created_at) * 100, '%') `% Conversion` 
       FROM invitations
       WHERE created_at >= curdate() - INTERVAL dayofweek(curdate()) + 13 DAY
             AND created_at < curdate() - INTERVAL dayofweek(curdate()) - 1 DAY
             AND user_id <> 1
             AND type = 'email';

completed_at不为null的情况下,count(completed_at)只计算行数。当且仅当邀请未完成时,我假定completed_at为null。count(created_at)是模拟工作的。但我假设该列中没有空值(如果有空值,这些行将不会与WHERE子句中的条件匹配,因此它们甚至不是计数的候选者)。UNION ALL只统一了两个结果集(没有消除重复项,因为至少Period不同)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51528558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档