社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

使用MySQL workbench使用两个标准识别重复项

Rachel • 3 年前 • 1592 次点击  

我正在使用MySQL Workbench提取一个列表。

这就是我的数据库的样子: database

我正试图找出这个数据库中重复最多的曲目的作曲家。

这是我输入的代码:

SELECT Name, Composer, Count(*) FROM Track

GROUP BY Name, Composer

HAVING Count(*)>1

ORDER BY Count(*) DESC;

作为这个查询的结果,我得到了每个曲目的重复数,以及作曲家。问题是我有作曲家的复本。因此,我的代码为我提供了最重复的曲目及其相关的作曲家。这不是我要找的。我怎样才能识别出这个数据库中重复最多曲目的作曲家?

以下是我的查询结果,如果有帮助的话: query-result

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127949
 
1592 次点击  
文章 [ 1 ]  |  最新文章 3 年前
O. Jones
Reply   •   1 楼
O. Jones    3 年前

将您的查询用作子查询,并围绕它包装另一个查询。(从子查询生成查询是 结构化的 在里面 结构化查询语言 ).

像这样的东西可能有用。

SELECT Composer, SUM(tracks) duplicate_tracks
  FROM (SELECT Name, Composer, Count(*) tracks 
               FROM Track
              GROUP BY Name, Composer
             HAVING COUNT(*) > 1
       ) duptracks
 GROUP BY Composer
 ORDER BY COUNT(*) DESC;

它将您的查询当作一个表(实际上是一个虚拟表)使用,并在其上运行GROUP BY。要以这种方式使用查询,它需要在 COUNT(*) 我给它起了个名字 tracks .它还需要在子查询中输入名称。我曾经 duptracks 为此。

外部查询将composer的所有重复曲目与 SUM() ... GROUP BY Composer 然后命令他们首先向作曲家呈现重复最多的曲目。

但请注意,这对您的 Composer 列作为一个整体。它将使用 John, Paul, Ringo, George 就好像他们只是一个作曲家,而不是每个人的重复数。