我需要做一个查询,从一个月返回前十位。我希望这可以直接通过MySQL实现。
基本上我每天都会得到一些数据(大约150行),其中包含一些关于不同youtuber的信息。每行都有一个标识符、一个日期、YouTuber和YouTuber当天的浏览量。它看起来像这样:
ID|Date|Youtuber|Views
126|2013-01-28|example|482612
我需要把一个月的所有观看次数加起来。例如五月,然后我需要得到该月浏览量最多的结果。
我如何通过mysql做到这一点?还是我也需要使用php ?:)
欢呼
SELECT Youtuber, SUM(Views) as viewTotal FROM <TABLE> WHERE month(Date) = 5 GROUP BY Youtuber ORDER BY viewTotal LIMIT 0,10
SELECT youtuber, SUM(views) AS total_views
FROM yourtable
WHERE date >= '2013-05-01' AND date < '2013-06-01'
GROUP BY youtuber
ORDER BY total_views DESC
LIMIT 10;
我认为这是两个查询:
-
一个月的所有视图之和。例如五月。
SELECT SUM(Views) as TotalViews FROM MyTable WHERE Date >= '2013-05-01' AND Date < '2013-06-01';
-
获取该月浏览量最多的结果。
SELECT t.YouTuber, t.Date, t.Views From MyTable AS t JOIN ( SELECT YouTuber, MAX(Views) AS Views FROM MyTable WHERE Date >= '2013-05-01' AND Date < '2013-06-01' GROUP BY YouTuber ) AS max USING (YouTuber, Views) WHERE Date >= '2013-05-01' AND Date < '2013-06-01';