Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按较低的值添加和过滤​;(MYSQL)_Mysql_Sql_Aggregate Functions - Fatal编程技术网

按较低的值添加和过滤​;(MYSQL)

按较低的值添加和过滤​;(MYSQL),mysql,sql,aggregate-functions,Mysql,Sql,Aggregate Functions,我必须做到这一点:得到用最不同唱片公司录制的歌手的名字 我有三张桌子,它们是: 歌手: cod\u singer name\u singer 录音: cod\u记录 cod\u singer 记录公司 cod_song 唱片公司: 记录公司 国家/地区 cod_song 目前,我可以通过以下代码获得歌手和每个歌手的不同录音: SELECT DISTINCT s.nome_singer , r.cod_reccord FROM singer s

我必须做到这一点:得到用最不同唱片公司录制的歌手的名字

我有三张桌子,它们是:

歌手:
cod\u singer
name\u singer

录音:
cod\u记录
cod\u singer
记录公司
cod_song

唱片公司:
记录公司
国家/地区
cod_song

目前,我可以通过以下代码获得歌手和每个歌手的不同录音:

SELECT DISTINCT s.nome_singer
              , r.cod_reccord  
           FROM singer s
           JOIN reccord r
             ON s.cod_singer = r.cod_singer;

但我不知道每个歌手能录制多少张唱片,我知道我必须使用
计数
,也许
拥有

仅用于你的代码值,这应该可以做到

            SELECT COUNT(DSTINCT record_company) number_of_labels, cod_singer
              FROM recording
             GROUP BY cod_singer
然后你可以加入歌手的行列

SELECT s.singer_name, n.number_of_labels
   FROM singer s
   LEFT JOIN (
            SELECT COUNT(DSTINCT record_company) number_of_labels, cod_singer
              FROM recording
             GROUP BY cod_singer
        ) n ON s.cod_singer = n.cod_singer

专业提示:您每花一小时学习如何使用GROUP BY和各种聚合函数(如COUNT(*)和COUNT(DISTINCT column))都是一个很好的时间。SQL在这方面提供了巨大的能力。

仅针对代码值,这应该可以做到

            SELECT COUNT(DSTINCT record_company) number_of_labels, cod_singer
              FROM recording
             GROUP BY cod_singer
然后你可以加入歌手的行列

SELECT s.singer_name, n.number_of_labels
   FROM singer s
   LEFT JOIN (
            SELECT COUNT(DSTINCT record_company) number_of_labels, cod_singer
              FROM recording
             GROUP BY cod_singer
        ) n ON s.cod_singer = n.cod_singer
专业提示:您每花一小时学习如何使用GROUP BY和各种聚合函数(如COUNT(*)和COUNT(DISTINCT column))都是一个很好的时间。SQL在这方面提供了强大的功能。

您可以:

select name
from (
  select
    s.cod_singer, 
    max(c.name_singer) as name,
    count(distinct c.record_company) as labels
  from singer s
  join recording r on r.cod_singer = s.cod_singer
  join record_company c on c.cod_son = r.cod_song
  group by s.cod_singer
) x
order by labels desc
limit 1
你可以做:

select name
from (
  select
    s.cod_singer, 
    max(c.name_singer) as name,
    count(distinct c.record_company) as labels
  from singer s
  join recording r on r.cod_singer = s.cod_singer
  join record_company c on c.cod_son = r.cod_song
  group by s.cod_singer
) x
order by labels desc
limit 1

查找
分组依据
计数()
具有
查找
分组依据
计数()
具有