0
id     company_id     company_name     size_of_company     employee 
-------------------------------------------------------------------
1         1             Comp 1              Big              John
2         1             Comp 1              Big              Ann  
3         1             Comp 1              Big              Peter
4         2             Comp 2              Big              Lisa 
5         2             Comp 2              Big              Steve 
6         3             Comp 3              Big              Mike  
7         3             Comp 3              Big              Anna  
8         3             Comp 3              Big              Jon   
9         3             Comp 3              Big              Nick  
10        3             Comp 3              Big              May   
11        4             Comp 4              Big              Lee   
12        4             Comp 4              Big              James 
13        4             Comp 4              Big              Jess  
14        4             Comp 4              Big              Carrie
15        5             Comp 5              Big              Luke  
16        5             Comp 5              Big              Brad  
17        5             Comp 5              Big              Joan  
18        5             Comp 5              Big              Ruth  
19        5             Comp 5              Big              Joel  
20        6             Comp 6              Big              Paul  

これはおそらく簡単な質問ですが、MySQL と PHP に関しては、私のスキルはかなり低いです。さまざまなループを試しましたが、結果はまったくありませんでした。どんな助けでも大歓迎です。

私がやりたいことはこれです:

同じ company_id と size_of_company の行数を数え、上位 5 社の行数と上位 5 社の名前を収集するにはどうすればよいですか?

行の量は、div の幅の値として div で使用されます。div は、異なる幅の値で 5 回印刷されます。行数が多いほど、div が大きくなります。

size_of_company には Medium と Small の値もあります。ただし、company_name には size_of_company を 1 つしか指定できません。これらの他の 2 つの size_of_company も、ページ上に独自のカテゴリ (中または小) の下に印刷されます。

4

1 に答える 1

0

質問を正しく理解していれば、次のように、同じ company_id、company_name、および size_of_company (GROUP BY を使用) を持つ行の数がカウントされます。並べ替えてから結果の数を制限すると、上位 5 つが得られます。

SELECT
 t.company_id,
 t.company_name,
 COUNT(*)
FROM
 tble t
GROUP BY
 t.company_id, t.company_name, t.size_of_company
ORDER BY
 COUNT(*) DESC
LIMIT 5
于 2013-10-23T16:20:35.547 に答える