表格mysql 分组排序序 请教

高分悬赏!如何在EXCEL里分组排序!_百度知道
高分悬赏!如何在EXCEL里分组排序!
在一个年级成绩总表里,用二种方法可以实现让表格先按班级排序,再按总分排序:方法一:先按总分排序,再按班级排序即可。方法二:使用多关键字的排序。
其他类似问题
为您推荐:
提问者采纳
E列给个辅助列,公式如下:E2单元格输入,然后下拉。=INT((ROW()-2)/10)+1有了这个辅助列,就同时选中A-E5列,按辅助列排序,再按持股排名排序。工作完成。如图:20分不算高分悬赏啊。
额。。因为当时我只剩最后20分了。。这相当于我来说是全部的财富啊TT。。谢谢你~我已经弄好了
:)解决就好!
提问者评价
来自团队:
其他1条回答
其实解决这个问题很简单在e2单元格输入公式int((row(a1)-1)/1供绩垛啃艹救讹寻番默0)+(d2-1)/10,然后下拉公式,自动筛选,最后排序d列,公式没有验证试试看吧,睡了。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁苹果/安卓/wp
积分 140, 距离下一级还需 5 积分
权限: 自定义头衔
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡下一级可获得
道具: 匿名卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
本帖最后由 seanj_cn 于
16:17 编辑
我的是的IPO面板数据,需要按发行市值排序将股票平均分为0,1,2三组,如果是这样,应该用egen aa=cut(size), group(3)即可;但由于年度跨度较大,不同年份IPO的股票市值不具可比性,我希望能按股票在其发行年份的发行市值排序并分组,即发行市值在该年(其所在IPO年份)所有新股中排前1/3的股票分在0组,后1/3的股票分在2组,其余在1组,于是写了如下简单程序:
gen size_group=1
forvalues ipoyear={
egen pct1=pctile(iposize),p(66.7)
egen pct3=pctile(iposize),p(33.3)
replace size_group=0if iposize&pct1
replace size_group=1 if iposize&pct3
结果在第一次循环中,程序就把所有年份股票都一次性分好组了,之后的循环貌似都没作用,(如下),初学stata,不知道这是为什么,可以请高手帮解答下吗?谢了!
(2129 real changes made)
(2509 real changes made)
(0 real changes made)
(0 real changes made)
(0 real changes made)
支持楼主:、
购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
载入中......
本帖被以下文库推荐
& |主题: 69, 订阅: 6
Trade Economicist
楼主,您好。
我觉得可以不用循环语句呢
“发行市值在概念所有股票中排前1/3的股票分在0组,”概念所有&&是什么意思?
您提供样本dta吧,不要太多观测值,能体现你数据特征就行,尽量简洁。
热心帮助其他会员
总评分:&学术水平 + 1&
热心指数 + 1&
信用等级 + 1&
本帖最后由 seanj_cn 于
10:30 编辑 SpencerMeng 发表于
楼主,您好。
我觉得可以不用循环语句呢谢谢版主的回复!
不好意思,打错字了,“概念”应是“该年”。数据结构与所希望得到的分组示意如下:
stock& && &&&ipoyear& && &&&iposize& &group&&
6001& && &&&2001& && && && && &&&100& && && && &&&0
6002& && &&&2001& && && && && &&&200& && && && &&&1
6003& && &&&2001& && && && && &&&300& && && && &&&2
6004& && &&&2010& && && && && &&&400& && && && &&&1
6005& && &&&2010& && && && && &&&300& && && && &&&0
6006& && &&&2010& && && && && &&&500& && && && &&&2
昨天受您另一个回帖里的命令启发,我模仿着写了一个简单的命令bys ipoyear: egen group=cut(size), group(3),担报错egen ... cut() may not be combined with by。多谢了!
Trade Economicist
本帖最后由 SpencerMeng 于
18:26 编辑 seanj_cn 发表于
谢谢版主的回复!
不好意思,打错字了,“概念”应是“该年”。数据结构与所希望得到的分组示意如下:
...与楼主共同学习。
我有个疑问,比如2001年10只股票中有一半都是相同的iposize,用cut就不能分组了,cut是平均分组。
分组时还涉及到某一年10只iposize怎么分三组呢?
是不是先针对每年的iposize进行求1/3处和2/3处的分位数值,然后在用命令将小于1/3的iposize 编码为0,中间的为1,大于2/3的编码为2。
不知楼主怎么看?
观点有启发
总评分:&学术水平 + 1&
热心指数 + 1&
信用等级 + 1&
本帖最后由 seanj_cn 于
16:46 编辑 SpencerMeng 发表于
与楼主共同学习。
我有的疑问,比如2001年10只股票中有一半都是相同的iposize,用cut就不能分组了,cu ...我之前就是用“求分位数后再编组”的思路写了个简单的程序(见楼顶),但是会出现上面描述的问题,可以请版主帮我看看可以怎么改正吗?谢谢版主!
Trade Economicist
seanj_cn 发表于
我之前就是用“求分位数后再编组”的思路写了个简单的程序(见楼顶),但是会出现上面描述的问题,可以请版 ...你看看下面的代码如何:clear
inp&&stock& &ipoyear& &iposize& &
gen size_group=1
forvalues ipoyear={
egen pct1=pctile(iposize),p(66.7)
egen pct3=pctile(iposize),p(33.3)
replace size_group=2 if iposize&pct1
replace size_group=0 if iposize&pct3
drop pct1
drop pct3
}& && &复制代码
总评分:&学术水平 + 1&
热心指数 + 1&
信用等级 + 1&
SpencerMeng 发表于
你看看下面的代码如何:我试了一下,好像还是第一次循环就把各年的样本一次性分组了呢,后面的循环都未产生作用。下面是运行结果:
(5 real changes made)
(5 real changes made)
(0 real changes made)
(0 real changes made)
(0 real changes made)
(0 real changes made)
(0 real changes made)
(0 real changes made)
分组结果:
stock& & & & ipoyear& & & & iposize& & & & size_group
1& & & & 2000& & & & 12& & & & 0
1& & & & 2001& & & & 13& & & & 0
1& & & & 2002& & & & 15& & & & 0
1& & & & 2003& & & & 30& & & & 1
2& & & & 2000& & & & 24& & & & 0
2& & & & 2001& & & & 42& & & & 1
2& & & & 2002& & & & 43& & & & 1
2& & & & 2003& & & & 55& & & & 2
3& & & & 2000& & & & 42& & & & 1
3& & & & 2001& & & & 13& & & & 0
3& & & & 2002& & & & 42& & & & 1
3& & & & 2003& & & & 54& & & & 2
4& & & & 2000& & & & 45& & & & 2
4& & & & 2001& & & & 35& & & & 1
4& & & & 2002& & & & 46& & & & 2
4& & & & 2003& & & & 44& & & & 2
还是把所有年份的规模放到一起分的呢。
clear
inp&&ipoyear& &iposize& &
1 2000 12
1 2001 13
1 2002 15
1 2003 30
2 2000 24
2 2001 42
2 2002 43
2 2003 55
3 2000 42
3 2001 13
3 2002 42
3 2003 54
4 2000 45
4 2001 35
4 2002 46
4 2003 44
end
cumul iposize, g(g) eq
levelsof ipoyear, local(year)
local cut1 = 1/3
local cut2 = 2/3
foreach x of local year {
recode g (min/`cut1'=0)(`cut1'/`cut2'=1)(`cut2'/max=2) if ipoyear==`x'
}&&复制代码
试试结果?
大牛,你迟到了~~
总评分:&论坛币 + 20&
学术水平 + 3&
热心指数 + 3&
信用等级 + 3&
Trade Economicist
ywh 发表于
试试结果?您在input的时候少了stock这个变量名。
加上去之后,跑出的结果并不是想要的结果了。stock& & & & ipoyear& & & & iposize& & & & g
1& & & & 2000& & & & 12& & & & 0
1& & & & 2001& & & & 13& & & & 0
1& & & & 2002& & & & 15& & & & 0
1& & & & 2003& & & & 30& & & & 1
2& & & & 2000& & & & 24& & & & 0
2& & & & 2001& & & & 42& & & & 1
2& & & & 2002& & & & 43& & & & 2
2& & & & 2003& & & & 55& & & & 2
3& & & & 2000& & & & 42& & & & 1
3& & & & 2001& & & & 13& & & & 0
3& & & & 2002& & & & 42& & & & 1
3& & & & 2003& & & & 54& & & & 2
4& & & & 2000& & & & 45& & & & 2
4& & & & 2001& & & & 35& & & & 1
4& & & & 2002& & & & 46& & & & 2
4& & & & 2003& & & & 44& & & & 2复制代码
总评分:&学术水平 + 1&
热心指数 + 1&
信用等级 + 1&
本帖最后由 ywh 于
14:52 编辑 SpencerMeng 发表于
您在input的时候少了stock这个变量名。
加上去之后,跑出的结果并不是想要的结果了。clear
input stock&&ipoyear& &iposize& &
1 2000 12
1 2001 13
1 2002 15
1 2003 30
2 2000 24
2 2001 42
2 2002 43
2 2003 55
3 2000 42
3 2001 13
3 2002 42
3 2003 54
4 2000 45
4 2001 35
4 2002 46
4 2003 44
end
bys stock:cumul iposize, g(g) eq
levelsof stock, local(id)
display &`r(levels)'&
local cut1 = 1/3
local cut2 = 2/3
foreach x of local id {
recode g (min/`cut1'=0)(`cut1'/`cut2'=1)(`cut2'/max=2) if stock==`x'
}&&复制代码抱歉,刚写错了,试试这个。此外,没有很明白楼主是想按year还是按stock进行排序,不过修改下即可。
十分感谢!!
总评分:&学术水平 + 1&
热心指数 + 1&
信用等级 + 1&
初级热心勋章
初级热心勋章
中级热心勋章
中级热心勋章
初级信用勋章
初级信用勋章
论坛好贴推荐
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
京ICP证090565号
京公网安备号
论坛法律顾问:王进律师其他回答(1)
from sp in SightPoint join sc in SightPointClass on sc.Id equals sp.ClassId
收获园豆:5
园豆:14278
园豆:14278
&&&您需要以后才能回答,未注册用户请先。查看: 1496|回复: 8
求助高人,有没有能实现分组自动排序并且筛选出前五位的函数
阅读权限10
在线时间 小时
& & & & & & & &
请教各位大神,附件里图片的表格,有没有办法可以实现将黄色的分组下面的数据分组自动排序,要求按照“指标1”和“指标2”排序(指标1是第一关键词,指标2是第二),然后再把排名前五位的和黄色标注的部分直接筛选出来放在另外一个sheet里?因为数据量很大,所以一一排序再粘出来实在是很痛苦啊。天天都要弄简直要死人了。求指点迷津。{:soso_e183:}
(170.95 KB, 下载次数: 0)
16:01 上传
阅读权限70
在线时间 小时
阅读权限20
在线时间 小时
可以用SQL语句,外部数据引用!
阅读权限95
在线时间 小时
无色前5位与黄色一并写入别的表格?要格式吗?
阅读权限20
在线时间 小时
不太会啊。
阅读权限10
在线时间 小时
zhaoyafei19 发表于
附件在单位电脑上,明天上传。
阅读权限10
在线时间 小时
李甲 发表于
无色前5位与黄色一并写入别的表格?要格式吗?
是的,无色的前五位和有色的要一并写入新的sheet,格式倒是无所谓的。主要是就想一次实现排序并且筛选出来,因为从原始软件导出来的数据量很大,可能一天的数据就几千行,实在是受不了。
阅读权限10
在线时间 小时
(9.53 KB, 下载次数: 3)
10:50 上传
点击文件名下载附件
上传了excel做的原始表,请大神们帮忙!
阅读权限10
在线时间 小时
没有人帮忙啊?{:soso_e105:}
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师下次自动登录
现在的位置:
& 综合 & 正文
mysql分组排序取前N条记录的最简洁的单条sql !
-- mysql分组排序取前N条记录的最简洁的单条sql。drop create table test (
id int primary key,
author varchar(30)) engine=insert into test values
(1,1,'test1'),(2,1,'test1'),(3,1,'test2'),(4,1,'test2'),(5,1,'test2'),(6,1,'test3'),(7,1,'test3'),(8,1,'test3'),(9,1,'test3'),(10,2,'test11'),(11,2,'test11'),(12,2,'test22'),(13,2,'test22'),(14,2,'test22'),(15,2,'test33'),(16,2,'test33'),(17,2,'test33'),(18,2,'test33');
-- select * from (select cid,author,count(*) as number from test group by cid,author) a where
select count(*)
from (select cid,author,count(*) as number from test group by cid,author) b
where a.cid=b.cid and a.number&b.number)order by cid,
&&&&推荐文章:
【上篇】【下篇】

我要回帖

更多关于 微博分组排序 的文章

 

随机推荐