我可以使用AS创建的列的最小值吗?



在我的任务中,我需要创建一个新列,显示一些特定乐队中有多少歌手。到目前为止,我在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;

相关内容

最新更新