【发布时间】:2015-02-17 22:39:20
【问题描述】:
我正在使用 Java 和 SQL,我正在尝试计算宠物动物园中的所有山羊。我知道我可以使用以下查询:
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 次获得单个颜色。 有没有办法在 one 查询中返回所有四种颜色?
编辑:为了清楚起见,假设有 15 只山羊。 9 个是棕色的,0 个是黑色的,6 个是灰色的。第一个查询将返回 15。第二个查询将返回 9。第三个和最后一个查询将分别返回 0 和 6。我正在寻找一个同时返回所有四个值的值(所以我不是在四个不同的时间读取同一张表)。可能是数组? { 15, 9, 0, 6 }
【问题讨论】:
-
你的意思是像 'GOAT' AND color in ('BROWN' ,'BLACK', 'GREY')?
-
您是否想要不同的值,例如 - 棕色的值、黑色的值和灰色的值?
标签: java sql oracle-sqldeveloper