我有一排显示包机旅行副驾驶,不是每个包机旅行都有副驾驶。
我很难弄清楚如何解决这个问题。
我想我必须得到该行中不为空的值的计数(意味着有一个 copliot),然后将它除以总数。我不知道如何划分它,我将如何获得该行中的总行数。我可以对其进行硬编码,但如果更多数据输入到数据库中,那将无济于事。
有没有办法只计算该行中的列数?
谢谢
在标准 SQL 中,您可以执行以下操作:
select (100.0*count(copilot))/count(*)
from t
Run Code Online (Sandbox Code Playgroud)
在 SQL 中,表达式count(copilot)计算非 NULL 值的数量。表达式count(*)是总行数。
在某些版本的 SQL 中,将两个整数相除会产生一个整数。所以,1/2 = 0,而不是 0.5。为确保非整数除法,“100”被表述为非整数常量而不是100。