计算两个子查询mysql之间的百分比

时间:2015-05-28 16:36:56

标签: mysql sql

我试图计算两个子查询之间的百分比,我有一个解决方案对我来说似乎并不优雅:

$bookstore = $doc->createElement('Bookstore');
$book = $doc->createElement("Book");

/* your code */

/* append name and url to $book */
$book->appendChild($textareaNode);
$book->appendChild($textareaNode1); 
$bookstore->appendChild($book);
$doc->appendChild($bookstore);

$doc->save("d.xml");

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

提前致谢。

1 个答案:

答案 0 :(得分:2)

我没有看到任何理由你不能简单地将它作为嵌套子查询中的SELECT来实现。 (在MySQL中未经测试,但在SQL Server中使用正确的日期函数。)

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