0
尝试按每种类型排序的记录列表以及每种类型5条记录的限制。选择多个记录 - MySQL
例如:
我有25个不同的代码GICS如2050,4010,2540等。而每个GICS代码是不同类型的行业,如2050年银行,4010年是汽车,2540年是化妆品。
现在每个GICS代码都被分配到多个公司名称并被赋予一个分数。我希望能够从每个GICS代码中选择最低的5家公司。
可能吗?或者我需要多个SQL?
下面是我的SQL:
select g.4digits, c.company_name, os.* from overall_scores os
join company c
on c.company_id = os.company_id
join gics g
on g.company_id = c.company_id
where g.4digits in ((2550), (4010), (2540))
and os.overall_score <> 'NA'
and os.overall_score <> 'NaN'
order by os.overall_score asc limit 5;
T. *和T.seq中T代表什么?你能向我解释SQL实际上在做什么,特别是CASE部分吗? – AznDevil92 2014-10-20 19:42:03
我们在gis类型相同的情况下维护一个rownum变量和gistype变量,我们增加rownum,否则我们将rownum重置为1,因为我们用g.4digits命令结果,具有相同gistype的所有行将按顺序排列行数,直到找到下一个gis类型,其中行号将再次从1开始。这是在gis类型上分区数据并在该分区中给出行号。 T是具有行号列和其他列的子查询的别名。现在外围选择只在每个桶中排名前五。 – radar 2014-10-20 19:45:13
谢谢你的澄清。但在我看来,它拉动了前5名的分数。我会在哪里将其更改为底部5? – AznDevil92 2014-10-20 19:57:14