我需要创建一个从一个月开始返回前十的查询。我希望这可以通过MySQL直接实现。
基本上我每天都会获得一些数据(大约150行),以及一些关于不同youtubers的信息。 每一行都有一个Identifier,一个Date,YouTuber,以及当天youtuber获得的观看次数。它看起来像这样:
ID|Date|Youtuber|Views
126|2013-01-28|example|482612
我需要总结所有观点,总计一个月。例如May,然后我需要得到那个月有大多数视图的结果。
我如何通过mysql做到这一点?或者我还需要使用PHP吗? :)
干杯
答案 0 :(得分:0)
SELECT Youtuber, SUM(Views) as viewTotal FROM <TABLE> WHERE month(Date) = 5 GROUP BY Youtuber ORDER BY viewTotal LIMIT 0,10
答案 1 :(得分:0)
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;
答案 2 :(得分:0)
我将其中两个视为两个查询:
总结一个月的所有观看次数。比如五月。
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';