首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找到最流行的音乐流派?

如何找到最流行的音乐流派?
EN

Stack Overflow用户
提问于 2017-04-13 12:12:29
回答 3查看 175关注 0票数 0

所以我有两个表,表1:音乐风格是带有StyleID和StyleName的字段,StyleName是一种流派,表2:带有字段SyleID和EntertainerID的entertainers。

我需要帮助查找的是:

1)在艺人数据库中最受欢迎的音乐风格是什么?

这就是我到目前为止所知道的:

代码语言:javascript
复制
 SELECT StyleID, StyleName 
   from EA_Music_Styles
  WHERE StyleID = (SELECT StyleID 
                     from EA_Entertainer_Styles 
                    WHERE StyleID = (SELECT MAX(StyleID) 
                                       FROM EA_Entertainer_Styles));

但是我得到了一个错误代码"Subquery返回超过1行“

我需要帮助,不知道该怎么做?初学者。

表一: StyleID StyleN 1 40的交际舞音乐2 50的音乐3 60的音乐4 70的音乐5 80的音乐6乡村7古典8古典摇滚9 Rap 10当代11乡村摇滚12猫王13民间14室内乐15爵士16卡拉OK 17摩城18现代摇滚19节奏和布鲁斯20显示曲调21标准22前40歌曲23综艺24萨尔萨25 90年代音乐

表2:

StyleID EntertainerID 3 1003 3 1008 4 1010 6 1007 6 1008 7 1009 7 1011 7 1012 8 1003 10 1001 10 1013 11 1007 13 1004 13 1012 14 1009 14 1011 15 1005 15 1013 17 1002 19 1002 19 1002 19 1005 20 1001 20 1011 211001 21 1009 21 1010 22 1006 22 1010 23 1002 23 1006 24 1005 24 1006

因此,结果将输出两个StyleID,7& 21和StyleName,这将是经典和标准

EN

回答 3

Stack Overflow用户

发布于 2017-04-13 12:29:16

你只需要连接你的两个表,并获得最大的表演者数量

代码语言:javascript
复制
 SELECT ms.StyleName, count(*) most_popular
   from EA_Music_Styles ms
         INNER JOIN A_Entertainer_Styles es
         ON ms.StyleID = es.StyleID
  group by ms.StyleName
  order by 2 desc
  limit 1

这将为您提供最流行的StyleName (我认为它是具有更多行的那个)。我计算了StyleName的出现次数,并对其进行了排序,只得到了第一个结果。

票数 0
EN

Stack Overflow用户

发布于 2017-04-13 12:32:58

下面是你解决这个问题的方法。

  1. 在您的entertainers表user group by StyleID中,同时选择计数。这将为您提供styleID计数,您可以按降序排序,并将1限制为最受欢迎的一个

从EA_Entertainer_Styles group by StyleID order by C desc 1中选择StyleID,count( styleID ) c;

  • 现在使用styleID表单第一步从表StyleName中获取音乐。

select StyleName from EA_Music_Styles where StyleID = id_from_step1

您可以在一个查询中使用这两个查询,方法是将它们连接起来,如Jorge Campos所示

票数 0
EN

Stack Overflow用户

发布于 2017-04-13 12:39:01

Max为您提供数据库中最高的数字,而不是最常用的数字。为此,您应该使用count。

下一个例子应该会给出正确的结果。

代码语言:javascript
复制
select StyleName from EA_Music_Styles
where StyleID = (
     select StyleID
     from EA_Entertainer_Styles
     group by StyleID
     order by count(StyleID) desc
     limit 1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43383382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档