SQL从2个不同的表创建变量

时间:2017-06-07 16:44:18

标签: mysql sql database phpmyadmin

我有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变量的视图呢?

3 个答案:

答案 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;