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
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