首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算两个子查询( mysql )之间的百分比

问计算两个子查询( mysql )之间的百分比
EN

Stack Overflow用户
提问于 2015-05-28 16:36:55
回答 1查看 1.3K关注 0票数 1

我试图计算两个子查询之间的百分比,我有一个解决方案,在我看来,这个解决方案一点也不优雅:

代码语言:javascript
复制
SET @tot := (select count(*) FROM shipment WHERE created < date_format(date_add(CURRENT_TIMESTAMP(), interval 1 day), '%Y%m%d000000') AND created >= date_format(CURRENT_TIMESTAMP(), '%Y%m%d000000'))

SELECT @tot AS Total, ((select count(*) from shipment where created < date_format(date_add(CURRENT_TIMESTAMP(), interval 1 day), '%Y%m%d000000') AND created >= date_format(CURRENT_TIMESTAMP(), '%Y%m%d000000') AND state = 'despatched')  / @tot) * 100 AS Percentage

虽然这在命令行中有效,但在我试图为其创建报告的定制平台上却失败了,我想知道是否有一种方法可以在不使用set变量的情况下简化这一点?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-28 17:30:49

我不认为有任何理由不能简单地将其作为嵌套子查询中的选择。(未在MySQL中进行测试,但在Server中使用适当的日期函数。)

代码语言:javascript
复制
select total, dispatched / total * 100 as percentage from
(
  select count(*) as Total, 
    sum(case when state = 'despatched' then 1.0 else 0.0 end) as dispatched
  from 
    shipment
  where 
    created >= date_format(CURRENT_TIMESTAMP(), '%Y%m%d000000') 
  and 
    created < date_format(date_add(CURRENT_TIMESTAMP(), interval 1 day), '%Y%m%d000000')
) calcs
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30512360

复制
相关文章

相似问题

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