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行が返されます。(php)を使用mysqli_fetch_arrayすると、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

他のテーブルを使用して同様のクエリを試しましたか? 私のデータベースの 1 つのいくつかのテーブルで小さな例を実行したところ、2 列の 1 行の結果が得られました。

以下は、その間に使用できる同様のクエリです。クエリの解決策が見つかったら、回答を編集することを約束します。

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 に答える