如何从今天开始选择最受欢迎的行

时间:2014-09-25 21:12:48

标签: mysql sql group-by

我一直在四处寻找但无法在任何地方找到答案。

我有一个MySQL表,看起来像这样:

CREATE TABLE IF NOT EXISTS `g_video_watch` (
`vwatch_id` int(11) NOT NULL,
  `vwatch_user` int(11) NOT NULL,
  `vwatch_track` int(11) NOT NULL,
  `vwatch_ip` varchar(255) NOT NULL,
  `vwatch_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=36 ;

每当页面打开一行时,用户可以观看视频的页面,其中包含用户所在的信息(vwatch_user)他或她打开的视频/视频(vwatch_track)以及IP是什么。此外,还插入了当前时间戳,以实现我想要实现的目标。

目标是展示今天最受关注的曲目/视频。换句话说,选择TODAY,GROUP all tr​​acks并检查每组返回多少行,以COUNT顺序排列,其中视图最高...

有人有想法吗?

2 个答案:

答案 0 :(得分:3)

要获得100首观看次数最多的曲目,请尝试以下操作:

SELECT vwatch_track, COUNT(*) 
FROM g_video_watch
WHERE DATE(vwatch_date) = DATE(NOW())
GROUP BY vwatch_track
ORDER BY COUNT(*) DESC
LIMIT 100

答案 1 :(得分:2)

SELECT vwatch_track , count(*)
FROM    g_video_watch
WHERE  vwatch_date >= CURRENT_DATE
GROUP BY vwatch_track