代码之家  ›  专栏  ›  技术社区  ›  sukiyo

SQL查询:过去7天内按舞者姓名排列的频道浏览和单击次数

  •  0
  • sukiyo  · 技术社区  · 6 年前

    Channel_Statistics 桌子

    我看到了 channel_views clicks 链接到 channel_id .

    Video_Channel

    channel_dancer_id 链接到 频道id . fk是为了 dancer_id Dancers 桌子。

    舞者 桌子

    舞者 链接到 dancers_name .

        CREATE TABLE Dancers (
          dancers_id int NOT NULL,
          dancers_name varchar(255) NOT NULL,
          PRIMARY KEY (dancers_id)
        ); 
    
        CREATE TABLE Video_Channel (
          channel_id int NOT NULL,
          channel_name varchar(255) NOT NULL,
          channel_dancer_id int,
          PRIMARY KEY (channel_id),
          FOREIGN KEY (channel_dancer_id) REFERENCES Dancers(dancer_id)
        );
    
        CREATE TABLE Channel_Statistics (
          channel_id int NOT NULL,
          _date date,
          channel_views int,
          clicks int,
          country varchar(255),
          FOREIGN KEY (channel_id) REFERENCES Video_Channel(channel_id)
        );
    

    我试过的

    SELECT COUNT(Channel_Statistics.channel_views), COUNT(Channel_Statistics.clicks), Dancers.dance_name
    FROM Channel_Statistics
    INNER JOIN Video_Channel ON Channel_Statistics.channel_id=Video_Channel.channel_id
    INNER JOIN Dancers ON Video_Channel.channel_dancer_id=Dancers.dancer_id
    WHERE _date > NOW() - INTERVAL 7 DAY
    GROUP BY Dancers.dancer_name;
    
    0 回复  |  直到 6 年前
        1
  •  1
  •   Ed Bangga    6 年前

    你几乎接近正确的答案了。使用 between 间隔7天

    select count(t3.channel_views), count(t3.clicks), t2.dance_name
    from Video_Channel t1
    join Dancers t2 on t2.dancers_id= t1.channel_dancer_id 
    join Channel_Statistics t3 on t3.channel_id = t1.channel_id
    where _date between now() - interval 7 day and now() 
    group by t2.dance_name