我正在使用Java和SQL,并且我正在计算宠物动物园中的所有山羊。我知道我可以使用以下查询:你可以在一个SQL语句中返回多个COUNT吗?
SELECT COUNT(1) FROM PettingZoo pz WHERE pz.animalType = 'GOAT'
够简单。现在,让我们说山羊有三种颜色之一:棕色,黑色或灰色。如果要计算每种颜色的数量,我可以执行以下查询:
SELECT COUNT(1) FROM PettingZoo pz WHERE pz.animalType = 'GOAT' AND
pz.animalType.color = 'BROWN'
SELECT COUNT(1) FROM PettingZoo pz WHERE pz.animalType = 'GOAT' AND
pz.animalType.color = 'BLACK'
SELECT COUNT(1) FROM PettingZoo pz WHERE pz.animalType = 'GOAT' AND
pz.animalType.color = 'GREY'
此方法有效,但速度很慢。这样做可以四次打开表格:一次获得总计数,另外3次用于各种颜色。 有没有什么办法可以返回中的所有四种颜色一个查询?
编辑:为了清楚起见,假设有15只山羊。九个是棕色的,0个是黑色的,另外六个是灰色的。第一个查询返回15.第二个返回9.第三个和最后一个查询分别返回0和6。我正在寻找一次返回所有四个值(所以我不会在四次不同的时间读同一个表)。可能是一个数组? {15,9,0,6}
你的意思是像'山羊'和颜色('布朗','黑','灰色')? – kosa 2015-02-17 22:41:07
是否需要不同的值,如 - 棕色值,黑色值和灰色值? – Makoto 2015-02-17 22:43:10