在我的数据库中,我的数据可以看作两种方式之一
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语句。
答案 0 :(得分:0)
coalesce
返回它传递的第一个非空值。这会将您的空值变为零,因为您需要将它们计为平均值的零。下一步是将least
添加到混音中:
SELECT least(1, coalesce(hh_total_fhc_0, 0)) FROM fixtures
给出0(关键的是,null不是数字,因此least(1, null)
是1!),如果它是正值则为1。将其应用于每个列,然后您可以完全按照您的想法计算命中百分比。