0

我需要进行一个查询,返回一个月的前十名。我希望这可以直接通过 MySQL 实现。

基本上我每天都会获得一些数据(大约 150 行),其中包含一些关于不同 youtuber 的信息。每行都有一个标识符、一个日期、YouTuber 以及 youtuber 当天获得的观看次数。它看起来像这样:

ID|Date|Youtuber|Views
126|2013-01-28|example|482612

我需要总结所有的观点并总计一个月。例如 5 月,然后我需要获得当月观看次数最多的结果。

我将如何通过mysql做到这一点?还是我也需要使用php?:)

干杯

4

3 回答 3

0

SELECT Youtuber, SUM(Views) as viewTotal FROM <TABLE> WHERE month(Date) = 5 GROUP BY Youtuber ORDER BY viewTotal LIMIT 0,10

于 2013-06-12T14:55:28.460 回答
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;
于 2013-06-12T15:04:08.957 回答
0

我将其中两个视为两个查询:

  1. 总结一个月的所有视图。比如五月。

    SELECT SUM(Views) as TotalViews 
    FROM MyTable
    WHERE Date >= '2013-05-01' AND Date < '2013-06-01';
    
  2. 获取当月观看次数最多的结果。

    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';
    
于 2013-06-12T15:04:10.003 回答