看板 Database 關於我們 聯絡資訊
MySQL 5.5.27 我想統計每個月份的瀏覽人數,並用TIMESTAMP表示 SELECT c_sid AS rt_sid, c_mod AS rt_mod, @datadate:= UNIX_TIMESTAMP( STR_TO_DATE( DATE_FORMAT(c_date,'%Y-%m-01 00:00:00'), '%Y-%m-%d %H:%i:%S' ) ) AS rt_date, SUM(c_num) AS rt_num FROM count_h WHERE c_mod = 'd' AND c_sid=49 GROUP BY c_sid,c_mod,@datadate ORDER BY @datadate ASC 得到結果: rt_sid rt_mod rt_date rt_num 49 d 1377964800 1 49 d 1377964800 1 ↑ 時間一樣,但就是不加總起來..... 而且,很奇妙的是,並不是完全不相加 我對其他項目跑這一段SQL之後,都會跑出兩筆資料出來,而且tr_date的時間都一樣 像是: c_id c_sid c_mod c_date c_num 6 33 v 2013/9/16 16:00 30 7 33 v 2013/9/16 17:00 1 8 33 v 2013/9/16 20:00 2 9 33 v 2013/9/16 21:00 3000 (後略) 會跑出這樣: rt_sid rt_mod rt_date rt_num 33 v 1377964800 30 ← 這筆就是不加 33 v 1377964800 3353 我想請問這個問題該怎麼解決? 總覺得應該是自己的SQL有錯,可是又看不出問題在哪裡.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.38.65.233
LaPass:GROUP BY那邊不能用@datadate 要用rt_num 我也不知道為什麼 09/23 17:37
hit1205:突然想到,那層 STR_TO_DATE() 是不是可以省略 XD? 09/27 19:50
LaPass:好像不行的樣子..... 印象中 09/27 21:23
ji394su33000:group by 似乎不能用別名 09/28 14:01