sql语句嵌套排序求助

[复制链接]
查看11 | 回复4 | 2021-1-27 05:31:20 | 显示全部楼层 |阅读模式
现有一表格表1bid_project_all,一部分是公司名、项目数、项目金额,然后连接另一表表2industry_class;根据表2匹配每个公司的行业。
匹配完毕之后,又要根据各单位所属行业标签进行对项目数、项目金额的排序;排序不是用orderby进行升序降序操作;而是插入新的一列,根据多寡生成从1-n的排列方式。
在增列排序时,尝试了几种方法,但形成数据冗余。故发此帖子,望路过大神伸援手!谢谢、
附:
本人所写语句:
SELECT*FROM
(SELECTt1.公司名称,t1.中标金额,t1.项目数,t1.Industry_labelFROM
(SELECT
bid_companyas公司名称,
sum(bid_money)as中标金额,
count(bid_project_all.id)as项目数,
industry_class.project_id,
industry_class.Industry_label
FROM
bid_project_all
LEFTJOINindustry_classonbid_project_all.project_id=industry_class.project_id
WHERE
--bid_project_all.bid_money>1000000000
--andlength(bid_project_all.bid_money)>12
--AND
bid_project_all.bid_companyISNOTNULL
GROUPBYbid_project_all.bid_company
)t1
GROUPBYt1.`公司名称`
ORDERBY
t1.`项目数`DESC)t2
GROUPBYt2.Industry_label

分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:31:20 | 显示全部楼层
自增列可以用rownum实现,mysql的话百度mysqlrownum应该也有方案
回复

使用道具 举报

千问 | 2021-1-27 05:31:20 | 显示全部楼层
请问:自增列后,用什么函数匹配可以在同一个查询里,在相对应的行业中进行排序呢?自增列那个好解决,就那个匹配相应的行业后再根据项目数/项目金额进行分类有点棘手(之前在excel里用的是rank)
回复

使用道具 举报

千问 | 2021-1-27 05:31:20 | 显示全部楼层
1)先俩个表连接,然后根据多少(条件)groupby,得到表A,包含业务多少(字段)
2)把俩个表连接,然后再连接表A,根据业务多少(字段)orderby
回复

使用道具 举报

千问 | 2021-1-27 05:31:20 | 显示全部楼层
建议楼主列出表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
1.你的createtablexxx..语句
2.你的insertintoxxx...语句
3.结果是什么样,(并给以简单的算法描述)
4.你用的数据库名称和版本(经常有人在MSSQLserver版问MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行