作者LaPass (LaPass)
看板Database
标题[SQL ] GROUP BY 年/月
时间Mon Sep 23 14:36:52 2013
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
1F:→ LaPass:GROUP BY那边不能用@datadate 要用rt_num 我也不知道为什麽 09/23 17:37
2F:→ hit1205:突然想到,那层 STR_TO_DATE() 是不是可以省略 XD? 09/27 19:50
3F:→ LaPass:好像不行的样子..... 印象中 09/27 21:23
4F:→ ji394su33000:group by 似乎不能用别名 09/28 14:01