多个SUM查询为1行

时间:2013-01-08 14:54:55

标签: mysql

我使用以下SQL根据日期范围返回几个总和:

SELECT SUM(CASE WHEN omtr_date >= '2013-01-08 00:00:00' THEN omtr_page_view END) AS omtr_page_view,
       SUM(CASE WHEN omtr_date >= '2013-01-02 00:00:00' THEN omtr_page_view END) AS omtr_page_view 
FROM emb_visits;

但它返回2行;使用mysqli_fetch_array(php)它给了我2个数组,而不是1个数组,其中包含2个值。

是否可以将这2个结果分组为1行/数组?

2 个答案:

答案 0 :(得分:1)

我可能会更改查询,因此您要返回的每个列值都有不同的名称:

  SELECT 
      SUM(CASE WHEN omtr_date >= '2013-01-08 00:00:00' THEN omtr_page_view END) AS omtr_page_view_jan08,
      SUM(CASE WHEN omtr_date >= '2013-01-02 00:00:00' THEN omtr_page_view END) AS omtr_page_view_jan02
  FROM emb_visits;

通过为每列提供不同的别名,将不会混淆值是什么

答案 1 :(得分:0)

您是否尝试使用其他表格进行类似查询?我已经用我的一个数据库的一些表做了一个小例子,它给了我一行2列的结果。

以下是您可以在此期间使用的类似查询。我保证在找到您的查询解决方案后编辑我的答案。

SELECT
     (SELECT SUM(omtr_page_view) FROM emb_visits WHERE omtr_date >= '2013-01-08 00:00:00'),
     (SELECT SUM(omtr_page_view) FROM emb_visits WHERE omtr_date >= '2013-01-02 00:00:00')