SQL groupby 汇总与联合

SQL groupby rollup vs union

Sql 问题:

enter image description here 竞争国 美国 Acme 公司 美国环球交易所 法国开放媒体 美国K-bam 英国帽钻 德国海克斯格林 D-ranron 法国 法克斯拉西班牙 输出应该是

国家竞争对手 法国 2 德国 1 西班牙 1 英国 1 美国 3 总计:8 除了将 groupby 与 rollup 一起使用外,我试图通过“union”解决它,但结果是“order by is not functioning”(应该按国家名称订购,但我的输出结果是“按竞争对手订购”......) 这是我的代码:

(select country, count(competitor) as competitors
    from table
    group by 1
    order by 1 
    )
    union all
    (select "Total:" as country, count(*) as competitors from table);

如有任何帮助,我们将不胜感激!谢谢!

如果你想要排序的结果,你需要 order by after the union:

(select country, count(competitor) as competitors
 from table
 group by 1
) union all
(select 'Total:' as country, count(*) as competitors
 from table
)
order by (country = 'Total:') desc, country asc