【发布时间】:2019-06-12 15:31:34
【问题描述】:
假设我有一个名为Table1 的表,其中包含VALUE、CODE 和TYPE 三列。 VALUE 列包含不同问题的 1-4 分。 CODE 列包含与问题相关的代码。 TYPE 列指示问题是论文 (PAP) 调查还是在线 (ONL) 调查的一部分。
这是表格的外观。
#Table1
VALUE CODE TYPE
----- ------ ------
2 Q2 ONL
1 Q2 PAP
3 Q2 ONL
4 Q2 ONL
1 Q2 ONL
1 Q2 ONL
1 Q2 PAP
2 Q2 ONL
4 Q2 ONL
2 Q2 ONL
3 Q1 ONL
1 Q1 ONL
4 Q1 ONL
3 Q1 ONL
and so on...
我的目标
使用 SQL 查询 (Oracle) 总结此表,这样-
1) 我首先计算CODE的所有1或2值第二季度
2) 然后将该数字除以第二季度的总个值
3) 按TYPE 对结果进行分组,以便我对ONL 和PAP 的结果进行分组。
预期结果
所以在我们的例子中,这个查询的结果是 -
TYPE SCORE
PAP 0.625 (5/8)
ONL 1 (2/2)
我的尝试
这看起来很简单,但我似乎无法获得正确的价值。我觉得这需要一个嵌套查询来存储不同的值,但我无法找到正确的示例来指导我。这是我的错误尝试-
SELECT TYPE, VALUE/COUNT(VALUE) as SCORE FROM Table1
where
CODE = 'Q2' AND
VALUE in (1,2)
GROUP BY TYPE
任何帮助将不胜感激。
【问题讨论】:
-
你得到的输出是什么?
-
提供创建和插入语句会有所帮助
-
预期输出中的数字是否附加到错误的类型?不应该是
PAP 1,ONL 0.625吗?
标签: sql oracle aggregate summarize