Mysql 如何使用Group By和整个列计算Distinct
我很难说出我需要什么/搜索结果的措辞,所以如果这是一个愚蠢的问题/以前已经回答过,我深表歉意。我正在尝试用SQL为如下表编写查询:Mysql 如何使用Group By和整个列计算Distinct,mysql,sql,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 我知道我可以选择co
Country Unique_ID
US 123
US 124
UK 125
Australia 126
将输出下表:
Country Count_Distinct
US 2
UK 1
Australia 1
All 4
我知道我可以选择countryid并计算不同的国家代码,我知道我可以计算不同的countryid代码以获得“全部”编号。我不知道如何编写一个查询来获得以下输出,这不是两个单独的查询
如果您需要信息或澄清,请让我知道。谢谢 使用:
如果需要文本“All”(默认情况下,国家/地区的null
),请将其包装在另一个查询中,以将null更改为“All”:
使用:
如果需要文本“All”(默认情况下,国家/地区的null
),请将其包装在另一个查询中,以将null更改为“All”:
你能试试这个吗 选择国家/地区、计数(不同的唯一\u id)作为计数不同 从桌子上
分组汇总(国家)请尝试以下方法: 选择国家/地区、计数(不同的唯一\u id)作为计数不同 从桌子上
按汇总分组(国家)因此,如果在您的示例中,如果USA的ID是123和123,而不是123和124,那么“Count Distinct”只能是1而不是2,对吗?@kbball这就是我的解释,但是列名
Unique_ID
表明不可能重复。将distinct
添加到计数中不会有什么坏处,但会产生更多的代码噪音…因此,如果在您的示例中,如果USA的ID是123和123,而不是123和124,“count distinct”将仅为1而不是2,对吗?@kbball我就是这样解释的,但列名Unique\u ID
表明不可能重复。将distinct
添加到计数中不会有什么坏处,但会产生更多的代码噪音…您缺少与以前一样的计数_Distinct@kbball“AS”是可选的。我更喜欢少点噪音。你和以前一样错过了计数_Distinct@kbball“AS”是可选的。我喜欢低噪音。
select Country, count(distinct Unique_ID) Count_Distinct
from mytable
group by Country
with rollup
select coalesce(Country, "All") Country, Count_Distinct
from (
select Country, count(distinct Unique_ID) Count_Distinct
from mytable
group by Country
with rollup
) x