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经过了足够的优化,它不会计数两次。