我是绝对的SQL新手,但老板要求我对仪表板(元数据库->数据实验室)的查询进行一些更新
我的表很简单,但是我在这里找到的所有答案都在合并不适用的空值,因此我不确定它们是否正确。
WITH c as (
SELECT "institution", count(*) as cnt
FROM "public"."students"
WHERE "institution" IS NOT NULL
AND "institution" != ''
)
SELECT institution, 100.0*cnt/(SELECT sum(cnt) FROM c) AS percent
FROM c
ORDER BY percent
DESC LIMIT 10;
表是从代码生成并产生以下结果:
institute | percent
uniA | 12.95
uniA (UNIA) | 4.3
这两行实际上是同一研究所,但是来自我们数据库的不同版本,因此具有不同的名称。我想合并行并以17.25的总计百分比结束]
您可以将case
与聚合一起使用: