Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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 如何使用have with COUNT作为聚合函数_Mysql_Sql - Fatal编程技术网

Mysql 如何使用have with COUNT作为聚合函数

Mysql 如何使用have with COUNT作为聚合函数,mysql,sql,Mysql,Sql,我只需要显示至少有两个标题的类型 我的标题表: Titles ------ TitleID, ArtistID, Title, StudioID, Genre 我的曲目表: Tracks ------ TitleID, TrackNum, TrackTitle 这是我目前的代码: select t.genre from titles t join tracks tr on (tr.titleid = t.titleid) having count(tr.tracktitle) > 1;

我只需要显示至少有两个标题的类型

我的标题表:

Titles
------
TitleID, ArtistID, Title, StudioID, Genre
我的曲目表:

Tracks
------
TitleID, TrackNum, TrackTitle
这是我目前的代码:

select t.genre from titles t
join tracks tr
on (tr.titleid = t.titleid)
having count(tr.tracktitle) > 1;

我不认为当前代码正确回答了所描述的问题。

如果你想使用真正意义上的
have
,你应该使用
groupby

SELECT t.genre, count(tr.tracktitle) num_tracktitle
FROM titles t
    JOIN tracks tr
       ON (tr.titleid = t.titleid)
GROUP BY t.genre
HAVING num_tracktitle > 1;

如果您想使用真正意义上的
HAVING
,您应该使用
groupby

SELECT t.genre, count(tr.tracktitle) num_tracktitle
FROM titles t
    JOIN tracks tr
       ON (tr.titleid = t.titleid)
GROUP BY t.genre
HAVING num_tracktitle > 1;

你为什么需要轨道表?似乎你在标题表中有你所需要的一切

SELECT
    TI.Genre,
    Count(TI.TitleID) As Titles
FROM
    Titles TI
GROUP BY
    TI.Genre
HAVING
    COUNT(TI.TItleID) > 1

你为什么需要轨道表?似乎你在标题表中有你所需要的一切

SELECT
    TI.Genre,
    Count(TI.TitleID) As Titles
FROM
    Titles TI
GROUP BY
    TI.Genre
HAVING
    COUNT(TI.TItleID) > 1

我会担心重复的行。可能需要在count()中添加一个distinct。你为什么不认为这是对的?你需要轨道表吗?听起来你只需要标题表就可以了。我会担心重复的行。可能需要在count()中添加一个distinct。你为什么不认为是对的?你到底需要里面的轨迹表吗?听起来你只需要标题表就可以了。使用
having num_tracktitle>1
这样你就不必计数两次。旁注:MySQL经过了足够的优化,它不会计数两次。使用
having num_tracktitle>1
这样你就不必计数两次。旁注:MySQL经过了足够的优化,它不会计数两次。