检查postgres中的值的出现 - NodeJS

时间:2018-05-23 12:43:37

标签: sql node.js postgresql

在我的数据库中,我的数据可以看作两种方式之一

1 -

hh_match_count: 5,
hh_total_fhc_0: 6,
hh_total_fhc_1: 5,
hh_total_fhc_2: 3,
hh_total_fhc_3: 2,
hh_total_fhc_4: 4

2 -

hh_match_count: 3,
hh_total_fhc_0: 6,
hh_total_fhc_1: 5,
hh_total_fhc_2: 3,
hh_total_fhc_3: null,
hh_total_fhc_4: null

我想要做的是从每个hh_total_fhc_0, hh_total_fhc_1, hh_total_fhc_2, hh_total_fhc_3, hh_total_fhc_4计算一个值> = 1(希望将其扩展为> = 2,> = 3等)的次数,然后除以那是hh_match_count。所以基本上得到了出现次数。

我应该在这里执行什么查询?慢慢地越来越多地参与SQL语句。

1 个答案:

答案 0 :(得分:0)

coalesce返回它传递的第一个非空值。这会将您的空值变为零,因为您需要将它们计为平均值的零。下一步是将least添加到混音中:

如果值为零,则

SELECT least(1, coalesce(hh_total_fhc_0, 0)) FROM fixtures给出0(关键的是,null不是数字,因此least(1, null)是1!),如果它是正值则为1。将其应用于每个列,然后您可以完全按照您的想法计算命中百分比。