2014-12-03 44 views
0

我想獲取統計信息。Mysql計數和拆分爲DAY,WEEK,YEAR查看統計數據在同一查詢中

我正在努力爲今天,本週,本月計數。

我的查詢:

"SELECT COUNT(id) FROM images i WHERE i.user_id = 3 GROUP BY DAY(i.created_at), WEEK(i.created_at), MONTH(i.created_at)" 

輸出:

array(7) { 
    [0]=> 
    array(1) { 
    ["COUNT(id)"]=> 
    string(1) "1" 
    } 
    [1]=> 
    array(1) { 
    ["COUNT(id)"]=> 
    string(1) "1" 
    } 
    [2]=> 
    array(1) { 
    ["COUNT(id)"]=> 
    string(1) "5" 
    } 
    [3]=> 
    array(1) { 
    ["COUNT(id)"]=> 
    string(1) "5" 
    } 
    [4]=> 
    array(1) { 
    ["COUNT(id)"]=> 
    string(1) "7" 
    } 
    [5]=> 
    array(1) { 
    ["COUNT(id)"]=> 
    string(2) "17" 
    } 
    [6]=> 
    array(1) { 
    ["COUNT(id)"]=> 
    string(1) "1" 
    } 
} 

但我想分裂,如:

day = 5, 
week = 15, 
month = 67 

怎麼會呢?


完整的工作查詢:

SELECT 
       COUNT(i.id) AS `all`, 
       (
        SELECT 
         COUNT(id) 
        FROM 
         images 
        WHERE 
         user_id = i.user_id AND WEEK(created_at) = WEEK(NOW()) 
       ) 
       AS `week`, 
       (
        SELECT 
         COUNT(id) 
        FROM 
         images 
        WHERE 
         user_id = i.user_id AND MONTH(created_at) = MONTH(NOW()) 
       ) 
       AS `month`, 
       (
        SELECT 
         COUNT(id) 
        FROM 
         images 
        WHERE 
         user_id = i.user_id AND DAY(created_at) = DAY(NOW()) 
       ) 
       AS `day` 
      FROM 
       images i 
      WHERE 
       i.user_id = " . $user->getId() 
+0

你怎麼會知道這天/周/月是哪個? – Strawberry 2014-12-03 09:44:54

+0

我只想知道,今天,本週,本月(當前日期統計。) – 2014-12-03 09:48:11

+0

目前是否也是最新的? – Strawberry 2014-12-03 09:49:22

回答

1

如果我理解你的權利,這應該是你在找什麼

SELECT Count(*)       AS day, 
     (SELECT Count(*) 
     FROM images 
     WHERE user_id = i.user_id 
       AND Week(i.created_at) = Week(Now()) 
     GROUP BY Week(i.created_at)) AS week, 
     (SELECT Count(*) 
     FROM images 
     WHERE user_id = i.user_id 
       AND Month(i.created_at) = Month(Now()) 
     GROUP BY Month(i.created_at)) AS month 
FROM images i 
WHERE i.user_id = 3 
     AND Day(i.created_at) = Day(Now()) 
GROUP BY Day(i.created_at) 
+0

舊的工作。 :(這不是 – 2014-12-03 10:29:33

+0

和不工作的兄弟不和,效果很好 – 2014-12-03 10:42:16

+0

好了,所以我已經編輯回來,如果這是你要找的 – DanR 2014-12-03 10:43:18