我有一个名为events
的表,有5000个条目。
每个事件都有一个recorded_on
字段,可能为空或可能不是。
每个事件还有一个artist
字段,它是10个不同值之一。
是否在SQL(特定于SQLite)的能力范围内发出单个查询,该查询将返回艺术家的名称以及他们的事件的百分比为null recorded_on
的值?如在
ARTIST | PERCENTAGE RECORDED
------------------------------
Joe | 49.2
Sarah | 17.8
Mike | 83.0
答案 0 :(得分:0)
select
artist,
( COUNT(
CASE recorded_on
WHEN NULL THEN 1
ELSE NULL
END
) / COUNT(*) ) * 100 as percentage
from event group by artist
答案 1 :(得分:0)
要为每个组获取一个输出行,请使用GROUP BY。
recorded_on IS NULL
是boolean表达式,其结果为1
或0
:
SELECT artist,
100.0 * sum(recorded_on IS NULL) / count(*) AS "percentage recorded"
FROM events
GROUP BY artist;