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