我有2个不同的表,称为观察和间隔。
意见:
ID,
型,
日期
1次休会03.05.2011 17:00
2凹陷03.06.2011 12:00
间隔:
ID,
观察ID,
值
1 1 5
2 1 8
3 2 4
4 2 4
我想要一个会显示的视图:
observation_id
percent_positive((其中value = 5)/(观察总数))
1.5
2 0
我知道
Select observation_id, Count(*) from intervals where value = 5 Group by
observation_id
会给我:
1 1
1 0
和
Select observation_id, Count(*) from intervals Group by
observation_id
会给我:
1 2
2 2
那么如何将这些组合起来创建一个我正在寻找的percent_positive变量的视图呢?
答案 0 :(得分:0)
您可以使用联接从具有公共列字段的两个表中获取数据。
有关详情,请详细阅读Multiple values from multiple Tables
答案 1 :(得分:0)
i.value=5
那个让你靠近的人,现在还不能进行测试。我不确定值5的意义是否正确,因此可能需要修改{ read: true }
测试以执行您想要的操作。这将仅包括具有引用它们的间隔的观察ID;如果你想要所有的观察结果,那么你需要加入那个表格(从那个表格中选择并准确地加入其他表格)。当然,这些ID的百分比将为0除以0 ...
答案 2 :(得分:0)
这给了我你想要的结果。 SQL不足以确定这是否是解决问题的最佳方法。
SELECT
observation_id as obs,
(SELECT COUNT(*) FROM intervals WHERE observation_id = obs AND value = 5)/(SELECT COUNT(*) FROM INTERVALS WHERE observation_id = obs) as percent
FROM observation
JOIN intervals ON observation.id = intervals.observation_id
GROUP BY observation_id;