VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1655|回复: 12

求一个月内,商品(按名称分类)销量求和,从高到低排序,然后统计,有哪些商品销售量的和(从

[复制链接]

3

主题

12

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-3-2 20:30:02 | 显示全部楼层 |阅读模式
要求见标题,
示例数据如下:
格式如下:
字段分别为:
日期, 型号, 销售量
12.1   A     2
12.1   B     1
12.1   C     1
12.1   E     3
12.1   F     1
12.1   H     2
12.1   I     1
12.2   A     1
12.2   C     1
12.2   D     1
12.2   E     4
12.2   H     2  

上面一共销售了20台(不管型号)..我要知道,哪些商品卖得最好.因此,我可以求合,排序.
得到的结果集为:(不管日期了).
型号,  销售号
E       7
H       4
A       3
C       2
B       1
D       1
F       1
I       1   
现在,我想知道,哪些商品我售量占到了总销量的:20%,  很明显,是E 7,如果我要知道销量占到50%的是哪些,很明显,   是:E   7,, H   4,,  如果要达到80%,  那就是E,H ,A,C 了..
回复

使用道具 举报

0

主题

93

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-5-13 10:45:02 | 显示全部楼层
select 型号,销售号=sum(销售量) from 表名 group by 型号 order by 销售号 desc
回复

使用道具 举报

0

主题

93

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-5-13 15:30:01 | 显示全部楼层
select 型号,销售号=sum(销售量),百分比=sum(销售量)/(select sum(销售量) from 表名)
from 表名 group by 型号 order by 销售号 desc
回复

使用道具 举报

0

主题

88

帖子

55.00

积分

新手上路

Rank: 1

积分
55.00
发表于 2020-5-13 17:00:02 | 显示全部楼层
select 型号,sum(销售量) '销售号' from tablename group by 型号 order by sum(销售量) desc
回复

使用道具 举报

0

主题

114

帖子

69.00

积分

新手上路

Rank: 1

积分
69.00
发表于 2020-5-13 18:30:02 | 显示全部楼层
select 型号,sum(销售量) as 销售号 from tablename group by 型号 order by 销售号 desc,型号
回复

使用道具 举报

0

主题

93

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-5-13 19:30:02 | 显示全部楼层
select 型号,销售号=sum(销售量),百分比=sum(销售量)/(select sum(销售量) from 表名)
from 表名 group by 型号 having sum(销售量)/(select sum(销售量) from 表名)>.2--大于20%
order by 销售号 desc
用having 定义就行了
回复

使用道具 举报

3

主题

12

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
 楼主| 发表于 2020-5-25 15:45:01 | 显示全部楼层
楼上的大哥,你没明白我的意思,我的意思是说:
占销量的20%的是哪些商品,很明显:E,达到了35%,我只是提取出E就可以了. 按你的方式,会把E, H提出来.
如果我要销量占50%的是哪些商品,按你的方式,没有,因为没有单类销售大于等于10台的.
可是,E和H的和,就是11,它们占到了50%.我要把它们提取出来.
如果我要达到80%的,那么,就会是:E, H, A, C,它们的合是16.满足我的要求了..
回复

使用道具 举报

0

主题

93

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-5-27 09:15:01 | 显示全部楼层
create table ta(日期 varchar(5), 型号 varchar(2), 销售量 int)
insert ta
select '12.1',   'A',     2
union all select '12.1',   'B',     1
union all select '12.1',   'C',     1
union all select '12.1',   'E',     3
union all select '12.1',   'F',     1
union all select '12.1',   'H',     2
union all select '12.1',   'I',     1
union all select '12.2',   'A',     1
union all select '12.2',   'C',     1
union all select '12.2',   'D',     1
union all select '12.2',   'E',     4
union all select '12.2',   'H',     2

select 型号,销售号=sum(销售量),销售号=sum(销售量),
百分比=str(convert(numeric(5,2),sum(销售量))/(select sum(销售量) from ta),5,2)--转换整数
from ta group by 型号
having str(convert(numeric(5,2),sum(销售量))/(select sum(销售量) from ta),5,2)=.35--定义表达式等于35%就行了
order by 销售号 desc

型号   销售号         销售号         百分比   
---- ----------- ----------- -----
E    7           7            0.35

(所影响的行数为 1 行)

回复

使用道具 举报

3

主题

12

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
 楼主| 发表于 2020-5-27 20:45:02 | 显示全部楼层
楼上的兄弟,你好,如果把 .35 改成: .20 或是其它小于.35 的数,它只显示一条,
如果把.35 改为 .50 那么它应显示:两条, E,  H ,它们两个的数量合达到 50%了,后面的就不用显示了.
如果把.35 改为 .80 那么它应显示:四条: E,  H,   A,  C... 只有把C 的数量加进去,才达到:80%, 所以,必须显示到C...

是不是,要得到这个结果,必须用存储过程,或是其它的方式,感觉一条SQL语句是搞不不定的..
回复

使用道具 举报

0

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-5-29 20:15:01 | 显示全部楼层
上面一共销售了20台(不管型号)..我要知道,哪些商品卖得最好.因此,我可以求合,排序.
得到的结果集为:(不管日期了).
型号, 销售号
E 7
H 4
A 3
C 2
B 1
D 1
F 1
I 1
现在,我想知道,哪些商品我售量占到了总销量的:20%, 很明显,是E 7,如果我要知道销量占到50%的是哪些,很明显, 是:E 7,, H 4,, 如果要达到80%, 那就是E,H ,A,C 了..

个人认为,这个结果具有不确定性,就拿
如果我要知道销量占到50%的是哪些,很明显, 是:E 7,, H 4,来说,也有可能是E7,A3,B2
你是如何确定要取得的货品内容呢!按大小排序也不是合理!需求不明确!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表