存储过程进行计数然后划分一列

时间:2018-07-09 19:04:03

标签: sql

我不完全知道如何为这个问题加上标题。但是我希望创建一个或多个存储过程,以创建具有平均值的新表。我有19个站点,我从中收集了调查数据。我想计算每列两列,但有两个不同的条件。 例如

SELECT COUNT(ColumnName)
FROM TableName
WHERE ColumnName = 3

SELECT COUNT(ColumnName)
FROM TableName
WHERE ColumnName = 4

从那里,我想将这两个数字相加,然后除以表中另一列的另一个计数。

基本上,我想知道多少个调查的答案为3和4,然后将它们除以回答的调查数。另外请记住,我想要基于每个站点的数字。

4 个答案:

答案 0 :(得分:0)

使用group by

select columnname
from tablename
where columnname in (3, 4)
group by columname;

答案 1 :(得分:0)

您似乎想要:

select sum(case when col in (3,4) then 1 else 0 end) / count(*)
from table t

答案 2 :(得分:0)

所以我离我想要达到的目标有点接近,但是它仍然没有按照我想要的去做。这是我想出的,但我不知道如何除以总和。 SELECT(从Resident_Survey WHERE中选择SELECT COUNT()当Iwish = 3且Village ='WP'且设置='LTC')+(从RESIDENT_Survey WHERE中进行SELECT COUNT()在Iwish = 4且Village ='WP'且Setting ='LTC'时可以/(从Resident_Survey WHERE村庄='WP'且设置='LTC'中选择COUNT(*)),当我希望时可以单独显示

答案 3 :(得分:0)

我知道了。我正在寻找创建此查询。 选择100.0 *     COUNT(在(3,4)中尊重隐私的情况下                 然后1                 ELSE NULL END)/     尊重COUNT(*)个Myprivacy 来自Resident_Survey WHERE村='WP'     并设置='LTC'