如何计算与Group By和整个列的区别

时间:2016-08-01 21:14:04

标签: mysql sql

我很难说出我需要的东西/措辞搜索结果,所以如果这是一个愚蠢的问题/之前已经得到回答,那么道歉。我试图在SQL中为一个表编写一个查询,如下所示:

Country    Unique_ID   
US         123
US         124
UK         125
Australia  126

这将输出以下表格:

Country    Count_Distinct   
US         2
UK         1
Australia  1
All        4

我知道我可以选择countryid并统计国家/地区代码,我知道我可以统计国家/地区代码以获得" All"数。我无法弄清楚如何编写查询以获得跟随输出,而不是两个单独的查询。

如果您需要信息或说明,请告诉我。谢谢!

2 个答案:

答案 0 :(得分:4)

使用WITH ROLLUP

select Country, count(distinct Unique_ID) Count_Distinct
from mytable
group by Country
with rollup

如果你想要文字" All" (默认情况下,您获得国家null),将其包装在另一个查询中以将空值更改为"所有":

select coalesce(Country, "All") Country, Count_Distinct
from (
    select Country, count(distinct Unique_ID) Count_Distinct
    from mytable
    group by Country
    with rollup
) x

答案 1 :(得分:0)

请你试试这个:

选择country,count(distinct unique_id)作为count distinct 从表 按汇总分组(国家/地区)