我想计算从此代码生成的结果表中的帐户数。这样,我知道有多少人一次都喜欢蓝色。
Select Distinct PEOPLE.FullName, PEOPLE.FavColor From PEOPLE
Where FavColor='Blue'
让我们说这是一个历史记录,说明人们在被问到时所说的最喜欢的颜色,所以如果再次在很晚的时候再次询问,可能会有多个相同全名的记录;因此不同。
我使用的代码可能无法在您的答案中重复使用,因此请随意使用您认为可以使用的代码。我确信我使用declare和if语句找到了我的问题的可能解决方案但是我丢失了那个页面......所以我没有解决方案。但是,我认为有一种方法可以在不使用条件的情况下完成它,而这正是我所要求的,而不是。感谢。
编辑:我的问题是:从上面的代码中,有没有办法计算结果表中的帐户数量?
答案 0 :(得分:1)
如果我理解你的要求是正确的(一次有多少人喜欢蓝色?),试试这个:
select count(*)
from PEOPLE
where FavColor = 'Blue'
group by FullName
如果您的问题实际上是,如何计算任何选择查询的结果?,您可以这样做:
假设您的原始查询是:
select MyColumn
from MyTable
where MyOtherColumn = 26
您可以将其包装在另一个查询中以获取计数
select count(*)
from (
select MyColumn
from MyTable
where MyOtherColumn = 26
) a
答案 1 :(得分:0)
我认为这可能就是你想要的。
选择Count(*)为'NumberOfPeople' 从 ( 从PEOPLE中选择Distinct PEOPLE.FullName,PEOPLE.FavColor 哪里FavColor ='蓝' )一个
答案 2 :(得分:0)
Select Count (Distinct PEOPLE.FullName)
From PEOPLE
Where FavColor='Blue'
答案 3 :(得分:0)
您是说要生成没有WHERE子句的计数?
这个怎么样?
SELECT
count(*)
FROM
people
INNER JOIN (SELECT FavColor = 'Blue') col ON col.FavColor = people.FavColor
编辑:好的,我现在看到了你想要的东西。
您只需将查询包装在SELECT count(*) FROM ( <your-query-goes-here> )
。
答案 4 :(得分:0)
如果同一个人有多个答案,也就是说,他们最喜欢的颜色会随着时间的推移而改变 - 导致多个颜色,有些重复,对于同一个人(也就是“帐户”),然后找到最喜欢的帐户数量颜色是/是蓝色(甲骨文):
选择计数(*) 从(选择FULLNAME 来自人民 其中FAVCOLOR ='蓝色' 分组由FULLNAME);