[SQL ] GROUP BY 年/月

看板Database作者 (LaPass)時間12年前 (2013/09/23 14:36), 編輯推噓0(004)
留言4則, 3人參與, 最新討論串1/1
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

09/23 17:37, , 1F
GROUP BY那邊不能用@datadate 要用rt_num 我也不知道為什麼
09/23 17:37, 1F

09/27 19:50, , 2F
突然想到,那層 STR_TO_DATE() 是不是可以省略 XD?
09/27 19:50, 2F

09/27 21:23, , 3F
好像不行的樣子..... 印象中
09/27 21:23, 3F

09/28 14:01, , 4F
group by 似乎不能用別名
09/28 14:01, 4F
文章代碼(AID): #1IF-67gx (Database)