Sql 如何在一个月内按国家获得前三名产品销售
以下是我们每月在一个国家获得前三名产品销售额所需的数据库:Sql 如何在一个月内按国家获得前三名产品销售,sql,oracle,greatest-n-per-group,Sql,Oracle,Greatest N Per Group,以下是我们每月在一个国家获得前三名产品销售额所需的数据库: USA Lenevo 1/1/2017 USA Toshiba 1/1/2017 USA Dell 1/2/2017 USA Asus 1/2/2017 USA Lenevo 1/1/2017 USA Toshiba 1/1/2017 USA Dell 1/2/2017 USA Lenevo 1/1/2017 USA Toshiba 1/1/2017 USA Dell 1/2/2017 Banglades
USA Lenevo 1/1/2017
USA Toshiba 1/1/2017
USA Dell 1/2/2017
USA Asus 1/2/2017
USA Lenevo 1/1/2017
USA Toshiba 1/1/2017
USA Dell 1/2/2017
USA Lenevo 1/1/2017
USA Toshiba 1/1/2017
USA Dell 1/2/2017
Bangladesh Lenevo 1/1/2017
Bangladesh Toshiba 1/1/2017
Bangladesh Dell 1/2/2017
Bangladesh Lenevo 1/1/2017
Bangladesh Toshiba 1/1/2017
Bangladesh Dell 1/2/2017
Bangladesh Asus 1/2/2017
India Lenevo 1/1/2017
India Toshiba 1/1/2017
India Dell 1/2/2017
India Lenevo 1/1/2017
India Toshiba 1/1/2017
India Dell 1/2/2017
India Asus 1/2/2017
Thailand Lenevo 1/1/2017
Thailand Toshiba 1/1/2017
Thailand Dell 1/2/2017
India Asus 1/2/2017
Thailand Lenevo 1/1/2017
Thailand Toshiba 1/1/2017
Thailand Dell 1/2/2017
Thailand Lenevo 1/1/2017
Thailand Toshiba 1/1/2017
USA Lenevo 2/1/2017
USA Toshiba 2/1/2017
USA Dell 2/2/2017
USA Lenevo 2/5/2017
USA Toshiba 2/6/2017
USA Dell 2/9/2017
USA Lenevo 2/5/2017
Bangladesh Lenevo 2/1/2017
Bangladesh Toshiba 2/1/2017
Bangladesh Dell 2/2/2017
Bangladesh Lenevo 2/1/2017
Bangladesh Toshiba 2/1/2017
Bangladesh Dell 2/2/2017
Bangladesh Lenevo 2/3/2017
India Lenevo 2/1/2017
India Toshiba 2/1/2017
India Dell 2/2/2017
India Asus 2/2/2017
Thailand Lenevo 2/1/2017
Thailand Toshiba 2/1/2017
Thailand Dell 2/2/2017
Thailand Asus 2/2/2017
Thailand Lenevo 2/1/2017
Thailand Toshiba 2/1/2017
Thailand Dell 2/2/2017
Thailand Lenevo 2/1/2017
Thailand Toshiba 2/1/2017
只要使用DB版本12c,就可以很容易地使用fetch first子句列出top-N查询。最后按月份、国家、品牌顺序对栏目进行分组,并应用分组功能
重要的窍门是考虑最小值有序列的多重存在概率的情况。i、 e.您限制为3个,但第5列第4列的品牌数量相等。在这种情况下,考虑使用与领带子句包含所有最小相等的事件:
select to_char(sale_date,'yyyymm') "monthOfYear", country, brand, count(1) cnt
from sales
group by to_char(sale_date,'yyyymm'), country, brand
order by count(1) desc
fetch first 3 rows with ties;
假设您有一个包含以下列的销售表:
SQL> desc sales
COUNTRY VARCHAR2(35)
BRAND VARCHAR2(35)
SALE_DATE DATE
你有什么问题吗?注意:Oracle的哪个版本?1发布家庭作业问题是可以的,但你必须展示你尝试了什么,以及你遇到了什么困难。2关于日期,当你在没有解释的情况下写下2017年1月2日之类的东西时,你是在问我们这是1月2日还是2月1日。我们不能——我们不是读心术的人。当你谈论前三名时,领带可能是第一名:六次销售,第二名:五次销售,第三名:两种不同的产品,每种产品有四次销售。在这种情况下,必须指定所需的结果。例如:如果有关联,则显示第三个关联的所有产品。