0

我正在使用以下 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 行/数组?

4

2 回答 2

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;

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

于 2013-01-08T15:39:56.073 回答
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')
于 2013-01-08T15:35:08.410 回答