在我的任务中,我需要创建一个新列,显示一些特定乐队中有多少歌手。到目前为止,我在SELECT部分中这样做了:
SELECT bands.name, count(*) AS singernumber
FROM....
所以我的问题是如何将显示的数据减少到只有具有最大值的数据。我可以用MIN来指代"singernumber"吗?列?
SELECT bands.name, count(*) AS singernumber
FROM bands, artists
WHERE bands.id=artists.id
AND artists.role LIKE "*singer*"
GROUP BY bands.name, bands.id;
您可以使用HAVING
来排除像在下面的alm中两个以上的歌手。
但你应该切换到JOIN,逗号分隔不再使用
SELECT bands.name, count(*) AS singernumber
FROM bands INNER JOIN artists
ON bands.id=artists.id
WHERE artists.role LIKE "*singer*"
GROUP BY bands.name, bands.id
HAVING COUNT)(*) > 2;