我们需要在 Oracle 数据库中对数据进行分组,并且必须得到 aProductNumber
和 a Description
。Description
需要是表中出现次数最多的那个。两者都是一个varchar2
。原始数据见下图:
产品编号 | 描述 |
---|---|
美国广播公司 | 产品ABC(有折扣) |
美国广播公司 | 产品ABC |
美国广播公司 | 产品ABC |
国防军 | 产品定义 |
预期结果:
产品编号 | 描述 |
---|---|
美国广播公司 | 产品ABC |
国防军 | 产品定义 |
我们已经尝试过了,但没有找到一种方法来包含出现Description
次数最多的 。
select distinct cnt1.ProductNumber
from (select COUNT(*) as total, ProductNumber
from Inventory
group by ProductNumber) cnt1,
(select MAX(total) as maxtotal, ProductNumber
from (select COUNT(*) as total, ProductNumber
from Inventory
group by ProductNumber)
group by ProductNumber) cnt2
where cnt1.total = cnt2.maxtotal;
在这里你可以找到一个 fiddle。
你知道我们该怎么做吗?